模版就相当于一个模具,比如做一块金砖,需要一个正方形的模具,这个就相当于一个抽象的模版Abstract Template,倒入的金子就是Concrete Template
上代码
abstract public class AbstractClass { public void TemplateMethod() { doOperation1(); //由子类实现 doOperation2(); //由子类实现 doOperation3(); // 自己实现 } protected abstract void doOperation1(); protected abstract void doOperation2(); private void doOperation3() { //do something } }
public class ConceptClass extends AbstractClass { @Override protected void doOperation1() { System.out.println("doOperation1"); } @Override protected void doOperation2() { System.out.println("doOperation2"); } }
设计原则:将行为尽量移动到结构的高端,而将状态尽量移动到结构的低端