principles:encapsulate_the_concept_that_varies
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
principles:encapsulate_the_concept_that_varies [2021-09-02 12:25] – old revision restored (2021-05-19 11:22) 65.21.179.175 | principles:encapsulate_the_concept_that_varies [2021-10-18 21:31] (current) – +++ restored +++ christian | ||
---|---|---|---|
Line 5: | Line 5: | ||
===== Context ===== | ===== Context ===== | ||
/* fill in contexts here: */ | /* fill in contexts here: */ | ||
- | * [[contexts: | + | * [[contexts: |
+ | * [[contexts: | ||
+ | * [[contexts: | ||
===== Principle Statement ===== | ===== Principle Statement ===== | ||
Line 47: | Line 48: | ||
* 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: // | Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides: // | ||
+ | |||
+ | But the idea if ECV is actually much older. It was first presented in | ||
+ | |||
+ | David Parnas: // | ||
+ | |||
===== Evidence ===== | ===== Evidence ===== | ||
Line 73: | 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 | + | * [[Model Principle]] (MP): ECV sometimes results in classes which do not correspond |
==== Complementary Principles ==== | ==== Complementary Principles ==== | ||
Line 87: | Line 100: | ||
- | ===== Example | + | ===== Examples |
Line 102: | Line 115: | ||
* [[Single Responsibility Principle]] | * [[Single Responsibility Principle]] | ||
* [[Open-Closed Principle]] | * [[Open-Closed Principle]] | ||
+ | |||
+ | ===== Discussion ===== | ||
+ | |||
+ | Discuss this wiki article and the principle on the corresponding [[talk: | ||
+ |
principles/encapsulate_the_concept_that_varies.txt · Last modified: 2021-10-18 21:31 by christian