通俗易懂的java设计模式之模板方法模式

59 阅读1分钟

通俗一点讲:在现实生活中,我们把规定了流程或者格式的实例定义为模版,允许使用者在使用的时候,根据自己个人的需求来去更新它。 代码如下:

public class Template {
    public static void main(String[] args) {
        AbstractClass class1 = new ConcreteClass1();
        AbstractClass class2 = new ConcreteClass2();
        //调用模板方法
        class1.templateMethod();
        class2.templateMethod();
    }
}
abstract class AbstractClass {
    //基本方法
    protected abstract void doSomething();
    //基本方法
    protected abstract void doAnything();
    //模板方法
    public final void templateMethod(){
        /*
         * 调用基本方法,完成相关的逻辑
         */
        this.doAnything();
        this.doSomething();
    }
}
class ConcreteClass1 extends AbstractClass {
    //实现基本方法
    protected void doAnything() {
        //业务逻辑处理
        System.out.println("any111");
    }
    protected void doSomething() {
        //业务逻辑处理
        System.out.println("some111");
    }
}
class ConcreteClass2 extends AbstractClass {     //实现基本方法
    protected void doAnything() {
        //业务逻辑处理
        System.out.println("any222");
    }
    protected void doSomething() {
        //业务逻辑处理
        System.out.println("some222");
    }
}

注意:一般模板方法都加上 final 关键字, 防止子类重写模板方法