解释一下模板方法模式,就是指:一个抽象类中,有一个主方法,再定义1...n个方法,可以是抽象的,也可以是实际的方法,定义一个类,继承该抽象类,重写抽象方法,通过调用抽象类,实现对子类的调用。
模板方法模式准备一个抽象类,将部分逻辑以具体方法以及具体构造子的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑。不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现。先制定一个顶级逻辑框架,而将逻辑的细节留给具体的子类去实现。
package templateMethod.section;
public abstract class AbstractClass {
protected abstract void doSomething();
protected abstract void doAnything();
public void run(){
this.doAnything();
this.doSomething();
}
}
package templateMethod.section;
public class ImplClass extends AbstractClass{
@Override
protected void doSomething() {
System.out.println("dosomething");
}
@Override
protected void doAnything() {
System.out.println("doanything");
}
}
package templateMethod.section;
public class ImplClass2 extends AbstractClass {
@Override
protected void doSomething() {
// TODO Auto-generated method stub
System.out.println("dosomenthing2");
}
@Override
protected void doAnything() {
// TODO Auto-generated method stub
System.out.println("doanything2");
}
}