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 [2021-09-02 12:26] – old revision restored (2021-05-19 11:22) 65.21.179.175principles:encapsulate_the_concept_that_varies [2021-09-02 12:26] – old revision restored (2021-05-11 21:52) 65.21.179.175
Line 2: Line 2:
  
 ===== Variants and Alternative Names ===== ===== Variants and Alternative Names =====
 +
 +  * Open-Closed Principle
  
 ===== Context ===== ===== Context =====
Line 9: Line 11:
  
 ===== Principle Statement ===== ===== Principle Statement =====
- 
-Encapsulate the Concept that Varies, i.e. a design is better when those parts that vary are encapsulated in a separate module. 
  
  
Line 38: Line 38:
 ==== Generalizations ==== ==== Generalizations ====
  
-  * [[Generalization Principle]] +  * [[principles:Generalization Principle]]
-  * [[Open-Closed Principle]] +
  
 ==== Specializations ==== ==== Specializations ====
- 
-  * [[Single Responsibility Principle]] (SRP):  
  
 ==== Contrary Principles ==== ==== Contrary Principles ====
  
-  * [[More Is More Complex]] (MIMC): ECV demands adding a new class for a new varying concept. +  * [[principles:More Is More Complex]] 
-  * [[Keep It Simple Stupid]] (KISS)ECV demands adding a new class for a new varying concept. This adds complexity. +  * [[principles:Model Principle]]
-  * [[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.+
  
 ==== Complementary Principles ==== ==== Complementary Principles ====
  
-  * [[Dependency Inversion Principle]] (DIP): ECV may result in the creation of abstract classes (i.e. the concepts) and descendant concrete classes (i.e. the variations). DIP now tells that other classes should only depend on the abstractions. +  * [[principles:Dependency Inversion Principle]]
  
 ==== Principle Collections ==== ==== Principle Collections ====
principles/encapsulate_the_concept_that_varies.txt · Last modified: 2021-10-18 21:31 by christian