Issue No. 05 - September/October (2007 vol. 24)
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/MS.2007.137
Rebecca J. Wirfs-Brock , Wirfs-Brock Associates
Building clean abstractions with clearly defined extension points is satisfying, but the best design choice isn't always obvious. How much access should you give a subclass to a class's inner workings? How much freedom should you give a subclass designer to "bend" inherited behaviors to make a new abstraction fit in or to extend an existing one? These decisions involve nuanced reasoning. The contract between a class and its subclasses requires thoughtful design, experimentation, and careful specification.
class, subclass, abstractions
Rebecca J. Wirfs-Brock, "Designing Extensible Classes", IEEE Software, vol. 24, no. , pp. 15-17, September/October 2007, doi:10.1109/MS.2007.137