Johnson and Foote's heuristics
From CSSEMediaWiki
(Difference between revisions)
RobertLechte (Talk | contribs) |
|||
Line 2: | Line 2: | ||
[[Johnson and Foote 1988]] | [[Johnson and Foote 1988]] | ||
+ | |||
+ | ** [[Recursion introduction]] | ||
+ | ** [[Eliminate case analysis]] | ||
+ | ** [[Reduce the number of arguments]] | ||
+ | ** [[Reduce the size of methods]] | ||
+ | ** [[Class hierarchies should be deep and narrow]] | ||
+ | ** [[The top of the class hierarchy should be abstract]] | ||
+ | ** [[Minimize accesses to variables]] | ||
+ | ** [[Subclasses should be specializations]] | ||
+ | ** [[Split large classes]] | ||
+ | ** [[Factor implementation differences into subcomponents]] | ||
+ | ** [[Separate methods that do not communicate]] | ||
+ | ** [[Send messages to components instead of to self]] | ||
+ | ** [[Reduce implicit parameter passing]] |
Revision as of 11:30, 6 October 2008
See [Designing Reusable Classes]
- Recursion introduction
- Eliminate case analysis
- Reduce the number of arguments
- Reduce the size of methods
- Class hierarchies should be deep and narrow
- The top of the class hierarchy should be abstract
- Minimize accesses to variables
- Subclasses should be specializations
- Split large classes
- Factor implementation differences into subcomponents
- Separate methods that do not communicate
- Send messages to components instead of to self
- Reduce implicit parameter passing