Johnson and Foote's heuristics
In their text, Johnson and Foote 1988, Johnson & Foote describe a number of important heuristics.
Rules for Finding Standard Protocols
These heuristics determine a set of rules that standardising class design and structure.
- Rule 1: Recursion introduction
- Rule 2: Eliminate case analysis
- Rule 3: Reduce the number of arguments
- Rule 4: Reduce the size of methods
Rules for Finding Abstract Classes
These heuristics define methods of determining and extracting abstract classes.
- Rule 5: Class hierarchies should be deep and narrow
- Rule 6: The top of the class hierarchy should be abstract
- Rule 7: Minimize accesses to variables
- Rule 8: Subclasses should be specializations
Rules for Finding Frameworks
The heuristics describe how to find frameworks in OOD.
- Rule 9: Split large classes
- Rule 10: Factor implementation differences into subcomponents
- Rule 11: Separate methods that do not communicate
- Rule 12: Send messages to components instead of to self
- Rule 13: Reduce implicit parameter passing
- Designing Reusable Classes - Johnson and Foote's paper (local copy)