Eliminate case analysis

From CSSEMediaWiki
(Difference between revisions)
Jump to: navigation, search
m (Reverted edits by Ebybymic (Talk); changed back to last version by Stephen Fitchett)
 
(2 intermediate revisions by 2 users not shown)
Line 9: Line 9:
 
* [[Beware value switches]]
 
* [[Beware value switches]]
 
* [[Switch statement smell]]
 
* [[Switch statement smell]]
 +
 +
[[Category:Johnson and Foote's heuristics]]

Latest revision as of 03:08, 25 November 2010

It is usually a mistake to explicitly check what class an object belongs to before performing some action on it. Instead, a message should be passed to the object in question, and each possible object should define the method that is being called and respond in their own way. In other words, each method in the possible objects that were being checked contains one of the cases.

This rule also applies to case analysis of the value of variables. It is usually better to have a separate class for each kind of variable, instead of one class that can represent several types of variable and differentiate between them based on the value of an instance variable.

Riel's heuristics Beware type switches and Beware value switches are derived from this idea.

See Also

Personal tools