User Tools

Site Tools


principles:single_responsibility_principle

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:single_responsibility_principle [2013-05-19 22:09] – external edit 127.0.0.1principles:single_responsibility_principle [2021-09-02 12:27] – old revision restored (2021-05-19 11:17) 65.21.179.175
Line 9: Line 9:
 ===== Context ===== ===== Context =====
 /* fill in contexts here: */ /* fill in contexts here: */
-  * [[contexts:Object-Oriented Design]] +  * [[contexts:Software Design]] 
  
  
-===== Principle Statement =====+===== Definition =====
  
 There should never be more than one reason for a [[glossary:module]] to change.((compare [[http://www.objectmentor.com/resources/articles/srp.pdf|Robert C. Martin: Single Responsibility Principle]])) There should never be more than one reason for a [[glossary:module]] to change.((compare [[http://www.objectmentor.com/resources/articles/srp.pdf|Robert C. Martin: Single Responsibility Principle]]))
Line 27: Line 27:
  
 When this rule is not adhered to, one module has several tasks. If one of these tasks changes, there is the risk that this also has an effect on the other task that normally should be independent. Thus unrelated functionality may break. When this rule is not adhered to, one module has several tasks. If one of these tasks changes, there is the risk that this also has an effect on the other task that normally should be independent. Thus unrelated functionality may break.
- 
- 
-===== Strategies ===== 
- 
- 
-===== Caveats ===== 
- 
-See section [[#contrary principles]]. 
  
  
Line 43: Line 35:
 ===== Evidence ===== ===== Evidence =====
 /* Comment out what is not applicable and explain the rest: */ /* Comment out what is not applicable and explain the rest: */
-/*  * [[wiki:Proposed]]*/ +/*[[wiki:Proposed]]*/ 
-/*  * [[wiki:Examined]]*/ +/*[[wiki:Examined]]*/ 
- +[[wiki:Accepted]] 
-  * [[wiki:Accepted]] +/*[[wiki:Questioned]]*/
- +
-/*  * [[wiki:Questioned]]*/+
  
  
Line 55: Line 45:
 ==== Generalizations ==== ==== Generalizations ====
  
-  * [[High Cohesion]] (HC) +  * [[principle:High Cohesion]] 
-  * [[Encapsulate the Concept that Varies]] (ECV)+
 ==== Specializations ==== ==== Specializations ====
  
Line 63: Line 53:
 ==== Complementary Principles ==== ==== Complementary Principles ====
  
 +  * [[principles:Principle of Locality]]
  
 ==== Principle Collections ==== ==== Principle Collections ====
  
-{{page>collections:SOLID#Box}} + 
-===== Examples =====+===== Example =====
  
  
Line 85: Line 76:
   * [[wp>Separation of Concerns]]   * [[wp>Separation of Concerns]]
   * [[http://blog.8thlight.com/cory-foy/2012/08/07/thinking-differently-about-srp.html|Thinking Differently About the Single Responsibility Principle]]   * [[http://blog.8thlight.com/cory-foy/2012/08/07/thinking-differently-about-srp.html|Thinking Differently About the Single Responsibility Principle]]
- 
principles/single_responsibility_principle.txt · Last modified: 2021-10-18 22:01 by christian