Contain contents not parents

From CSSEMediaWiki
(Difference between revisions)
Jump to: navigation, search
m (Reverted after discussion with Alex)
Line 1: Line 1:
 +
=[http://edojalys.co.cc UNDER COSTRUCTION, PLEASE SEE THIS POST IN RESERVE COPY]=
 
:''A class must know what it contains, but it should never know who contains it.'' --Riel's Heuristic 4.13, [[Arthur Riel 1996]]
 
:''A class must know what it contains, but it should never know who contains it.'' --Riel's Heuristic 4.13, [[Arthur Riel 1996]]
  

Revision as of 07:03, 24 November 2010

UNDER COSTRUCTION, PLEASE SEE THIS POST IN RESERVE COPY

A class must know what it contains, but it should never know who contains it. --Riel's Heuristic 4.13, Arthur Riel 1996

This heuristic refers to the idea that classes should not know what objects contain them as this makes them far less reusable. If a class is designed for a specific use and is dependent on a parent object, it can't then be used inside a different type of parent object. For example, Riel uses the example of a BedRoom containing an AlarmClock. The BedRoom object must know about the AlarmClock object inside it, but if AlarmClock is dependent on BedRoom then it can't then be used inside a TimeLockSafe.

The Chain of Responsibility design pattern violates this heuristic.

Personal tools