CSC/ECE 517 Fall 2010/ch7 7f PW: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
|||
Line 4: | Line 4: | ||
[[Image:Callsuper.png|Call Super Anti-pattern]]<br> | [[Image:Callsuper.png|Call Super Anti-pattern]]<br> | ||
=== | ===Example of the Call Super Anti-pattern=== | ||
<pre> | <pre> | ||
public class TestCase | public class TestCase | ||
Line 11: | Line 11: | ||
} | } | ||
public class TestCaseOne extends TestCase | public class TestCaseOne extends TestCase | ||
public void | public void setup() { | ||
super.setup(); | super.setup(); | ||
extraSetupForTestCaseOne(); | extraSetupForTestCaseOne(); | ||
Line 17: | Line 17: | ||
</pre> | </pre> | ||
==Alternative Implementation== | |||
Instead of forcing a method to call super(), it is generally considered a better practice to use the [http://en.wikipedia.org/wiki/Template_method_pattern Template method pattern.] | |||
==References== | ==References== | ||
[1] Wikipedia, the free encyclopedia: Call Super, 2010. Wikimedia Foundation, Inc.: [http://en.wikipedia.org/wiki/Call_super] | [1] Wikipedia, the free encyclopedia: Call Super, 2010. Wikimedia Foundation, Inc.: [http://en.wikipedia.org/wiki/Call_super] | ||
[2] MF Bliki: Call Super[http://martinfowler.com/bliki/CallSuper.html] | [2] MF Bliki: Call Super[http://martinfowler.com/bliki/CallSuper.html] |
Revision as of 00:54, 30 November 2010
The Call Super Anti-pattern
What is the Call Super Anti-pattern
The Call Super anti-pattern shows up occasionally in object oriented code. Any time an inherited class overrides a method but is still required to call super() at some point during the method, then that is a case of this anti-pattern. It is not a good idea to require something else being called at some point during the method.
Example of the Call Super Anti-pattern
public class TestCase public void setup() { doStuff(); } public class TestCaseOne extends TestCase public void setup() { super.setup(); extraSetupForTestCaseOne(); }
Alternative Implementation
Instead of forcing a method to call super(), it is generally considered a better practice to use the Template method pattern.
References
[1] Wikipedia, the free encyclopedia: Call Super, 2010. Wikimedia Foundation, Inc.: [1] [2] MF Bliki: Call Super[2]