Separation of concerns

From CSSEMediaWiki
(Difference between revisions)
Jump to: navigation, search
m (Reverted edits by Ebybymic (Talk); changed back to last version by Stephen Fitchett)
 
(6 intermediate revisions by 5 users not shown)
Line 4: Line 4:
  
 
Separation of concerns is usually measured with the Cohesion and Coupling metrics.
 
Separation of concerns is usually measured with the Cohesion and Coupling metrics.
 +
 +
==Opposing forces==
 +
*[[Keep related data and behavior in one place]]
 +
*[[Hide data within its class]]
 +
 
==See Also==
 
==See Also==
*[[Single responsibility principle]]
+
* [[Single responsibility principle]]
 +
* [[One key abstraction]]
 +
* [[Interface segregation principle]]
 +
* [[Behavioral completeness]]
 +
* [[Extract Class]]
 +
* [[Divergent change smell]]
 +
* [[Avoid god classes]]
 +
* [[God object]]
 +
* [[Presentation separation idiom]]

Latest revision as of 03:23, 25 November 2010

Nothing is particularly hard if you divide it into small jobs. - Henry Ford

Separation of concerns is rather self-explanatory: Each of the different parts/tasks/roles/jobs of a program should be kept as separate as possible from each other. This principle is relevant at all levels of program organisation. At the high level, each package or class should group code relating to one broad concern, while at lower levels, a clearly written line of code should invoke one coherent operation, without unexpected side-effects, and any particular method should accomplish one single task.

Separation of concerns is usually measured with the Cohesion and Coupling metrics.

Opposing forces

See Also

Personal tools