principles:dependency_inversion_principle
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
principles:dependency_inversion_principle [2013-04-03 14:22] – [Evidence] christian | principles:dependency_inversion_principle [2021-09-02 19:24] – old revision restored (2021-05-11 21:48) 65.21.179.175 | ||
---|---|---|---|
Line 10: | Line 10: | ||
===== Principle Statement ===== | ===== Principle Statement ===== | ||
- | |||
- | Depend on abstractions.((Robert C. Martin: //Agile Software Development, | ||
Line 21: | Line 19: | ||
===== Strategies ===== | ===== Strategies ===== | ||
- | |||
- | * Apply the [[patterns: | ||
- | * Apply other forms of [[glossary: | ||
- | * Have an '' | ||
- | * Declare only '' | ||
- | |||
- | |||
- | ===== Caveats ===== | ||
- | |||
- | It is normally not helpful to apply DIP to [[patterns: | ||
- | |||
- | Furthermore note that applying [[patterns: | ||
- | |||
- | See section [[#contrary principles]]. | ||
===== Origin ===== | ===== Origin ===== | ||
- | |||
- | Robert C. Martin: // | ||
===== Evidence ===== | ===== Evidence ===== | ||
/* Comment out what is not applicable and explain the rest: */ | /* Comment out what is not applicable and explain the rest: */ | ||
- | + | /* | |
- | /* * [[wiki: | + | * [[wiki: |
- | /* * [[wiki: | + | * [[wiki: |
- | + | | |
- | [[wiki: | + | * [[wiki: |
- | + | */ | |
- | /* * [[wiki: | + | |
===== Relations to Other Principles ===== | ===== Relations to Other Principles ===== | ||
Line 68: | Line 48: | ||
* [[Model Principle]] (MP): DIP demands having abstractions. MP tells how these abstractions can look like. | * [[Model Principle]] (MP): DIP demands having abstractions. MP tells how these abstractions can look like. | ||
+ | * [[Encapsulate the Concept that Varies]] (ECV): | ||
==== Principle Collections ==== | ==== Principle Collections ==== | ||
Line 74: | Line 55: | ||
{{page> | {{page> | ||
- | ===== Examples | + | ===== Example |
Line 85: | Line 66: | ||
===== Further Reading ===== | ===== Further Reading ===== | ||
- | * Robert C. Martin: // | ||
- | * Robert C. Martin: //Agile Software Development, | ||
- | * [[http:// | ||
- | * [[wiki> | ||
- | * [[wp> | ||
principles/dependency_inversion_principle.txt · Last modified: 2021-10-18 21:23 by christian