What Every Programmer Should Know About Object-Oriented Design ebook
by Meilir Page-Jones
For example: In a reliable design, why must a variable's cone of polymorphism lie within that of a method. Is connascence good or bad? How could the inherited methods of a superclass violate the invariant of a subclass -- and how can this be prevented?
Page-Jones answers these questions and more, with characteristic clarity, demystifying the fundamentals of object orientation in a language-independent way. He provides a comprehensive notation for object-oriented design that allows you to depict the design for a whole system or to jot down back-of-the-envelope ideas. features 150+ diagrams and exercises Topics Include
* Encapsulation * Information Hiding * State Retention * Object Identity * Synchronous and Asynchronous Messages * Classes and Subclasses * Inheritance * Polymorphism * Genericity * Reusability * The Object-Communication Diagram * States and Transitions * Connascence * Class Domains * Encumbrance * State Space and Behavior * Class Cohesion * Guide to Object-Oriented Terminology * Object-Orientation in a Historical Context
From the Foreword
". . . vintage Page-Jones. . . . Meilir is a gifted teacher. . . . a relentlessly pragmatic focus based on real-world experience . . . compact examples to guide the developer, whether novice or old hand, toward better object-oriented software solutions. . . . Who could ask for more?" -- Larry L. Constantine