Jon Harvey wrote:

>I must side with Craig's world view:
><snip>
>
>>sub-apps should be as self
>>contained and independent as possible, in the same manner that webapps
>>should be as self contained and independent as possible.
>>
></snip>
>
>OO is first and foremost about encapsulation.
>Your solution's objects mirror the user's mental model.
>
You must have missed my post about adding a switch to make it optional 
and default it to "off".

>Inheritance breaks encapsulation. It tightly
>couples subclasses to superclasses. A subclass depends on
>the implementation details of its superclass for its proper
>function. If the superclass's implementation changes from
>release to release, the subclass may break even though it
>hasn't been touched.
>
>When I model I use this rule of thumb:
>If inheritance isn't in the domain model,
>don't have it in the implementation.
>
>I try to use composition over inheritance which
>IMHO makes the code easier to understand.
>One of the biggest mistakes for Java newbies is to
>jump into inheritance and end up with an app made
>up of one huge inheritance heirarchy. It is evil to
>maintain - I have had to try and 'fix' quite a few.
>You spend most of the day traversing the heirarchy
>playing "find the implementation". It's tedious when
>you have the source but becomes evil when you have
>to decompile some framework's jar and find out the
>inner workings of superclasses.
>
Ok - I see that side.  You don't find polymorphism (which is kind of 
what we're discussing, I think) a valuable asset?  I do :-)

>Sorry about the rant - Joshua Bloch explains it better
>as Item 14 in his book: "Effective Java Programming Language Guide"
>He helped architect & write alot of Java's collection
>classes which are an excellent example of how to write
>an API framework. It's well worth reading.
>
>Hmm sorry - probably a bit more than 2 cents...
>but I consider inheritance the most widely misused
>feature of OO languages.
>
Hey - 2 cents; 10 cents ;-) I don't think anyone's counting.  The point 
was to generate meaningful discussion.  All views are important.  It's 
really kind of moot at this point though, as I observed in my response 
to Martin.  I now see (crystal) clearly that this discussion should be 
tabled until we have a 1.1 final out there.

As a rebuttal however :-) I would note that inheritence is one of the 
(very powerful) tools of the OO paradigm.  Yes, it can be misused.  What 
can't?

Ok ... I had a couple paragraphs explaining my point but I removed them 
(I think voicing opinions on this issue would be counter-productive at 
this time - sorry I started it!).  Let's continue on and get 1.1 out the 
door and then put our heads together - fair enough?  I'm sure there's 
someone out there wishing 1.1 were final so they could use it - and such 
discussions are just going to side-track us from our primary goal, which 
is reaching final status of 1.1.

>Jon.
>
-- 
Eddie Bush




--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to