From: topmind on

> >> 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)


From: topmind on

Jeff Brooks wrote:
> topmind wrote:
> > And right off the bat in this link:
> >
> >
> >
> > 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:
> >
> >
> 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

> Jeff Brooks


From: topmind on
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?


From: Daniel Parker on
"topmind" <topmind(a)> wrote in message
>> 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,

From: topmind on
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.)


First  |  Prev  |  Next  |  Last
Pages: 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
Next: Use Case Point Estimation