User Tools

Site Tools


principles:law_of_demeter

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
principles:law_of_demeter [2013-02-25 16:20] – minor improvements christianprinciples:law_of_demeter [2021-10-18 21:52] – old revision restored (2013-08-10 10:56) christian
Line 9: Line 9:
 /* fill in contexts here: */ /* fill in contexts here: */
   * [[contexts:Object-Oriented Design]]    * [[contexts:Object-Oriented Design]] 
 +  * [[contexts:Implementation]]
  
 ===== Principle Statement ===== ===== Principle Statement =====
Line 52: Line 52:
  
   * [[Low Coupling]] (LC): The goal of LoD is to reduce coupling by reducing the knowledge of a class about other classes.   * [[Low Coupling]] (LC): The goal of LoD is to reduce coupling by reducing the knowledge of a class about other classes.
-  * [[Tell, Don't Ask/Information Expert]] (TdA/IE)+  * [[Tell, Don't Ask/Information Expert]] (TdA/IE): LoD is more specific than TdA/IE because TdA/IE can be applied in a wider context (e.g. for responsibility assignment). Applying TdA leads to solutions which are good according to LoD. Note that the reverse is not true: Accoring to LoD you may get and set values from an object passed as a parameter to a method.
  
 ==== Specializations ==== ==== Specializations ====
Line 63: Line 63:
  
 ==== Complementary Principles ==== ==== Complementary Principles ====
 +
 +  * [[Model Principle]] (MP): Adhering to LoD may result in additional methods in aggregating classes. MP tells how they should look like.
 +
  
 ==== Principle Collections ==== ==== Principle Collections ====
  
  
-===== Example =====+===== Examples =====
  
  
Line 88: Line 91:
   * [[http://www.ccs.neu.edu/home/lieber/LoD.html|Law of Demeter]]   * [[http://www.ccs.neu.edu/home/lieber/LoD.html|Law of Demeter]]
  
 +===== Discussion =====
 +
 +Discuss this wiki article and the principle on the corresponding [[talk:principles:Law of Demeter|talk page]].
principles/law_of_demeter.txt · Last modified: 2021-10-18 21:52 by christian