'. '

SuperVsInner

From APIDesign

Revision as of 07:53, 24 February 2010 by JaroslavTulach (Talk | contribs)
(diff) ←Older revision | Current revision (diff) | Newer revision→ (diff)
Jump to: navigation, search

I always felt that there is some clash between the general desire for object oriented reuse and principles of good API design. Proponents of resuereuse seem to advocate making every method virtual, every class subclassable, every behavior changable. Those who maintained an API or a framework for some time and tried to keep some degree of BackwardCompatibility know that opening up more than expected will at the end hurt the reuse.

I attribute this to the way subclassing is done in Java or C++ or similar languages. I could not formulate that feeling, but I kept a thought back in my mind about an OOP language which is not flawed in this way - Beta. However I never had enough time to learn beta properly, I just read the specification. It felt somewhat up side down, but without practical experience it was hard to formulate exactly what was up and what was down.

That is why I am thankful to authors of Super and Inner — Together at Last! for explaining everything in the Java terminology and even finding ways how to make these two worlds co-exist in piece.

Personal tools
buy