On Mon, 03 Jan 2005 09:35:26 -0800, Jonathan Locke wrote:
>nope. final stops people from using extension points we haven't fully
>thought through. so it's the default for every class and method. in
>fact, this should have been the default in java.
Heh, C++ uses such mindset. The Java designers made an explicit
decision in 1.0 to make the opposite the default and I happen to agree
with them. Everything should be extensible by default and no problems
should occur so long as you follow objected-oriented design -- that is,
your extension must satisfy all contractual requirements of the
superclass. Frankly, this would work better if Java had design by
contract, but it does not yet.
From my discussions with the Java guys, the only reason final
even exists (in the context of methods and classes) is for security
reasons (and in the past for performance reasons). It was never meant
as a mechanism for artificially controlling all future changes.
<my 2 cents>
When I am designing my own frameworks, I let people make
whatever extensions they wish and if they somehow run into problems
because I forgot to expose some precondition/postcondition then I
tighten my documentation. I think this mentality helps open-source
projects where you don't want everyone double-checking with everyone
else. Right now we're five people working together and double checking
everything. In the future you might have some other project depending
upon ours and extending it for their own use, or even five of them. We
will simply not able to micromanage everything, nor should we try to.
We still get to retain control over our own code, but we shouldn't try
to control other people's code...
</my 2 cents>
Gili
-------------------------------------------------------
The SF.Net email is sponsored by: Beat the post-holiday blues
Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek.
It's fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt
_______________________________________________
Wicket-develop mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wicket-develop