CSC/ECE 517 Fall 2010/ch7 7f PW

From Expertiza_Wiki
Revision as of 00:54, 30 November 2010 by Phwetsel (talk | contribs)
Jump to navigation Jump to search

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.
Call Super Anti-pattern

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]