Class hierarchies should be deep and narrow

From CSSEMediaWiki
(Difference between revisions)
Jump to: navigation, search
m
Line 6: Line 6:
  
 
== See also ==
 
== See also ==
* [[Favour deep heirarchies]]
+
* [[Favour deep hierarchies]]
 
* [[Design maxims]]
 
* [[Design maxims]]

Revision as of 04:38, 6 October 2008

A good class hierarchy design should be several layers deep. In a good design, a base class should not have large number of direct children classes (i.e. a superclass has 28 subclasses). If a class hierarchy is not deep but very wide, it is a sign that a change is needed.

Solution for solving this problem is to find some common behaviors from the children sibling classes, and then extract these common behaviors into a parent class under the original base parent class.

Riel's heuristic Favour deep hierarchies is derived from this idea.

See also

Personal tools