CSC/ECE 517 Fall 2010/ch7 7f PW
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. In this pattern, the method that would be required to be called via super(), that method would actually call another method that is abstract has to be created by the subclass.
References
[1] Wikipedia, the free encyclopedia: Call Super, 2010. Wikimedia Foundation, Inc.: [1] [2] MF Bliki: Call Super[2]