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 revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
principles:encapsulate_the_concept_that_varies [2013-02-11 20:50] – [Complementary Principles] +IH/E christianprinciples:encapsulate_the_concept_that_varies [2020-10-12 16:09] – old revision restored (2013-05-19 22:09) 159.69.186.191
Line 47: Line 47:
     * Visitor: New operations have to be added to a given more or less static inheritance structure of classes.     * Visitor: New operations have to be added to a given more or less static inheritance structure of classes.
     * ...     * ...
 +
 +===== Caveats =====
 +
 +See section [[#contrary principles]].
 +
  
 ===== 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 87: Line 99:
  
  
-===== Example =====+===== Examples =====
  
  
Line 102: Line 114:
   * [[Single Responsibility Principle]]   * [[Single Responsibility Principle]]
   * [[Open-Closed Principle]]   * [[Open-Closed Principle]]
 +
principles/encapsulate_the_concept_that_varies.txt · Last modified: 2021-10-18 21:31 by christian