User Tools

Site Tools


principles:encapsulate_the_concept_that_varies

Differences

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

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
principles:encapsulate_the_concept_that_varies [2013-03-18 09:44]
127.0.0.1 external edit
principles:encapsulate_the_concept_that_varies [2019-10-07 08:29] (current)
2600:1700:6470:22d0:c500:a3eb:d473:80ab [Contrary Principles]
Line 5: Line 5:
 ===== Context ===== ===== Context =====
 /* fill in contexts here: */ /* fill in contexts here: */
-  * [[contexts:​Object-Oriented Design]]  +  * [[contexts:​Object-Oriented Design]] 
 +  * [[contexts:​API Design]] 
 +  * [[contexts:​Architecture]]
  
 ===== Principle Statement ===== ===== Principle Statement =====
Line 54: Line 55:
  
 ===== Origin ===== ===== Origin =====
 +
 +The principle is stated, explained and used in the GoF book:
  
 Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides: //​[[wp>​Design Patterns|Design Patterns: Elements of Reusable Object-Oriented Software]]//​ ("GoF book"​),​ p. 29 Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides: //​[[wp>​Design Patterns|Design Patterns: Elements of Reusable Object-Oriented Software]]//​ ("GoF book"​),​ p. 29
 +
 +But the idea if ECV is actually much older. It was first presented in
 +
 +David Parnas: //​[[http://​citeseerx.ist.psu.edu/​viewdoc/​summary?​doi=10.1.1.132.7232|On the Criteria To Be Used in Decomposing Systems into Modules]]//
 +
  
 ===== Evidence ===== ===== Evidence =====
Line 78: Line 86:
  
   * **[[More Is More Complex]] (MIMC)**: ECV demands adding a new class for a new varying concept.   * **[[More Is More Complex]] (MIMC)**: ECV demands adding a new class for a new varying concept.
-  * [[Model Principle]] (MP): ECV sometimes results in classes which do not correspond ​top a real-world concept in the sense of MP. A "​concept that varies"​ can also be a technical concept.+  * [[Model Principle]] (MP): ECV sometimes results in classes which do not correspond ​to a real-world concept in the sense of MP. A "​concept that varies"​ can also be a technical concept.
  
 ==== Complementary Principles ==== ==== Complementary Principles ====
Line 108: Line 116:
   * [[Open-Closed Principle]]   * [[Open-Closed Principle]]
  
 +===== Discussion =====
 +
 +Discuss this wiki article and the principle on the corresponding [[talk:​principles:​Encapsulate the Concept that Varies|talk page]].
principles/encapsulate_the_concept_that_varies.1363596278.txt.gz · Last modified: 2013-05-20 12:46 (external edit)