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-01-30 14:27] – [Generalizations] ECV christianprinciples:single_responsibility_principle [2018-10-14 12:00] – [Principle Statement] christian
Line 5: Line 5:
   * One Responsibility Rule   * One Responsibility Rule
   * Separation of Concerns (this originally was a broader term but is mostly used just like SRP)   * Separation of Concerns (this originally was a broader term but is mostly used just like SRP)
 +  * Curly's Law
 +  * Do One Thing
  
  
 ===== Context ===== ===== Context =====
 /* fill in contexts here: */ /* fill in contexts here: */
-  * [[contexts:Object-Oriented Design]]  +  * [[contexts:Object-Oriented Design]] 
 +  * [[contexts:API Design]] 
 +  * [[contexts:Architecture]] 
 +  * [[contexts:User Interface Design]]
  
 ===== Principle Statement ===== ===== Principle Statement =====
  
-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 to change certain [[glossary:module]].((compare [[http://www.objectmentor.com/resources/articles/srp.pdf|Robert C. Martin: Single Responsibility Principle]]))
  
  
Line 30: Line 34:
  
 ===== Strategies ===== ===== Strategies =====
 +
 +
 +===== Caveats =====
 +
 +See section [[#contrary principles]].
  
  
 ===== Origin ===== ===== Origin =====
 /* the *primary* source */ /* the *primary* source */
 +{{page>resources:Agile Software Development, Principles, Patterns, and Practices#reference}}
  
 ===== Evidence ===== ===== Evidence =====
Line 62: Line 71:
  
 {{page>collections:SOLID#Box}} {{page>collections:SOLID#Box}}
-===== Example =====+===== Examples =====
  
  
 ===== Description Status ===== ===== Description Status =====
 /* Choose one of the following and comment out the rest: */ /* Choose one of the following and comment out the rest: */
-[[wiki:Stub]] +/*[[wiki:Stub]]*
-/*[[wiki:Incomplete]]*/+[[wiki:Incomplete]]
 /*[[wiki:Complete]]*/ /*[[wiki:Complete]]*/
  
 ===== Further Reading ===== ===== Further Reading =====
  
-  * Robert C. Martin//Agile Software Development, Principles, Patterns, and Practices//+  * {{page>resources:Agile Software Development, Principles, Patterns, and Practices#reference}}
   * [[http://www.butunclebob.com/ArticleS.UncleBob.PrinciplesOfOod|ButUncleBob: Principles of OOD]]   * [[http://www.butunclebob.com/ArticleS.UncleBob.PrinciplesOfOod|ButUncleBob: Principles of OOD]]
   * [[wiki>SingleResponsibilityPrinciple]]   * [[wiki>SingleResponsibilityPrinciple]]
Line 80: Line 89:
   * [[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]]
 +  * Coding Horror: [[http://blog.codinghorror.com/curlys-law-do-one-thing/|Curly's Law: Do One Thing]]
 +
 +===== Discussion =====
  
 +Discuss this wiki article and the principle on the corresponding [[talk:principles:Single Responsibility Principle|talk page]].
principles/single_responsibility_principle.txt · Last modified: 2021-10-18 22:01 by christian