Johnson and Foote's heuristics

From CSSEMediaWiki
(Difference between revisions)
Jump to: navigation, search
Line 3: Line 3:
 
[[Johnson and Foote 1988]]
 
[[Johnson and Foote 1988]]
  
** [[Recursion introduction]]
+
* [[Recursion introduction]]
** [[Eliminate case analysis]]
+
* [[Eliminate case analysis]]
** [[Reduce the number of arguments]]
+
* [[Reduce the number of arguments]]
** [[Reduce the size of methods]]
+
* [[Reduce the size of methods]]
** [[Class hierarchies should be deep and narrow]]
+
* [[Class hierarchies should be deep and narrow]]
** [[The top of the class hierarchy should be abstract]]
+
* [[The top of the class hierarchy should be abstract]]
** [[Minimize accesses to variables]]
+
* [[Minimize accesses to variables]]
** [[Subclasses should be specializations]]
+
* [[Subclasses should be specializations]]
** [[Split large classes]]
+
* [[Split large classes]]
** [[Factor implementation differences into subcomponents]]
+
* [[Factor implementation differences into subcomponents]]
** [[Separate methods that do not communicate]]
+
* [[Separate methods that do not communicate]]
** [[Send messages to components instead of to self]]
+
* [[Send messages to components instead of to self]]
** [[Reduce implicit parameter passing]]
+
* [[Reduce implicit parameter passing]]

Revision as of 11:30, 6 October 2008

See [Designing Reusable Classes]

Johnson and Foote 1988

Personal tools