Keep related data and behavior in one place

From CSSEMediaWiki
Jump to: navigation, search
Keep related data and behavior in one place. --Riel's Heuristic 2.9, Arthur Riel 1996

If two or more areas are actually of the same key abstraction they should be captured in the same class. As soon as there are any "get" operations that might imply that this heuristic is being violated.

-- Explanation: If the object retrieved by the get operation is further used to call another function or obtain another object then this is a violation. A rule of thumb is whenever you see consecutive use of "." operations then it's very likely to be a violation of this rule. A simple example is:

student.getMarks().calculateGrade()

This example also violates the Law of Demeter.

See also

Personal tools