From: topmind on 11 Jun 2005 23:45 > > >> And bound to the RDBMS. > > > >You OO'ers always make that sound like a bad thing. Youses are > >DB-phobics. I don't want to be bound to OO, can we wrap that away too? > >(I agree that the DB tools are sometimes lacking in implementation and > >portability). > > > >> If we had done that, our tests would be too > >> slow, and we would have to ship the system to our users with some kind > >> of RDBMS attached. > > > >My RDB-bound wiki was not "slow". > > You misunderstand. I run over 1,000 unit tests, and over 100 > acceptance tests on the system. These tests combined take about 90 > seconds to run (on a bad day). The reason for this speed is that I > use the in-memory version of the page object. I am not sure what your point is. Do you have tests that show a RDBMS implementation would not scale as well? > > > >Anyhow, one can do something like this: > > > >function getWikiArticle(articleID) { > > if (sys::driver==RDBMS) {.....} > > elseif (sys::driver==Files) {.....} > > elseif (sys::driver==RAM) {.....} > > else {error()) > >} // end-function > > True, one could do that. However, that makes a generic function > (getWikiArticle) depend upon three different implementations. That > kind of coupling is unfortunate. I'd rather have the getWikiArticle > function not know about RAM, RDBMS, and FILES, and that's what > polymorphism gives me. If we had hundreds of different "drivers" I could see the advantage of polymorphism. However, that is not likely in this case. Companies don't want to pay for multiple implementations of the same thing in most cases and RDBMS are a safe bet for most apps in my domain. It would be a poor investment to target the 1% who may want to use flat files because they hate Dr. Codd. And, I am not fully clear on what you mean by "depend upon". > > >But I would really like to see poly in business-modeling issues, not > >storage and EXE distribution issues. > > Then look at the way FitNesse handles everything else. Or look at the > payroll example in the PPP book. (The library likely has a copy. If > not, a local Barnes and Noble will have one.) What are the hierarchies used? Please don't tell me it uses "account types". I addressed that in a sister message. > > > >> So if you are using ODBC or > >> JDBC, you are using OO techniques to talk to your database. > > > >Perhaps. But that does not mean polymorphism is good for everything. > > It's good for many things, not for everything. It's use is > situational, not specific to particular domains. There are situations > within every domain in which polymorphism is both useful and not. > That includes drivers, persistence, telecommunications, business > rules, guis, etc, etc. Wherever dependencies need to be managed > (which is just about everywhere) there is a potential for polymorphism > to facilitate that management. Well, perhaps if the situations where it is useful and not are clearified, we might find our areas of agreement. Is it only helfpul if one can find a good, safe hierarchical classification or multiple implementations of the same thing (device drivers)? > > ----- > Robert C. Martin (Uncle Bob) | email: unclebob(a)objectmentor.com -T-
From: topmind on 11 Jun 2005 23:47 Jeff Brooks wrote: > topmind wrote: > > > And right off the bat in this link: > > > > http://www.ratio.co.uk/white.html > > > > They define a hierarchy of bank account types. I have ranted against > > this before. To satisfy how customers really want stuff, you just > > cannot use hierarchies. Customers want a smorgishbord, not hierarchies. > > See: > > > > http://www.geocities.com/tablizer/mellor.htm#customerplans > > Classification hiearchies don't need to be used to model everything in > OO. Your argument in this case is very weak. I didn't say they were. I was addressing a specific example of polymorphism. > > Jeff Brooks -T-
From: topmind on 12 Jun 2005 00:26 May I ask for the Dosage Tracking Example? A Google search only turns up bits and peices mixed in with other examples. Is it split into multiple articles? -T-
From: Daniel Parker on 12 Jun 2005 00:13 "topmind" <topmind(a)technologist.com> wrote in message news:1118545598.944210.92410(a)g43g2000cwa.googlegroups.com... > >> You make claims all the time and have no proof. > > Like what? Like (referring to RCM) "But all his examples are device drivers" Like {referring to me) "you were the one bragging about how great polymorphism is," > Even if I did, does that give you license to also be an idiot? > Stop shaking your head and argue. Learn how to make a coherent argument. Best wishes, Daniel
From: topmind on 12 Jun 2005 00:35
Again, you describe "edits" in terms of a hierarchical taxonomy or list of mutually-exclusive choices ("sub-types"). How many times do I have to say that trees and mut-ex. is poor modeling? It is too much code rework to turn an IS-A model into a HAS-A model. Thus, it is usually safer to start off with HAS-A rather than risk the huge change cost. This is the biggest problem of polymorphism. Trees are oversold. (Not all poly depends on them, but most do.) -T- |