Issue No.05 - September/October (2007 vol.24)
Rebecca J. Wirfs-Brock , Wirfs-Brock Associates
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/MS.2007.137
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. 5, pp. 15-17, September/October 2007, doi:10.1109/MS.2007.137