Johnson and Foote's heuristics
From CSSEMediaWiki
(Difference between revisions)
RobertLechte (Talk | contribs) |
RobertLechte (Talk | contribs) |
||
Line 3: | Line 3: | ||
[[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