行为型模式 --- 模板方法模式

2020-08-26  本文已影响0人  十二找十三
模板方法模式
思想:定义一个算法骨架,而将算法的一些步骤延迟到子类中,使得子类可以不改变该算法的情况下重定义该算法的某些特定步骤(算法的某些特定步骤需要根据子类的环境做出改变)
 hook思想
package study.org;

public class Demo {
    public static void main(String[] args) {
        AbstractTemplate template = new ConcreteClass1();
        
        template.templateMethod();
    }
}

abstract class AbstractTemplate {

    void templateMethod() {
        method1();
        method2();
        if (hookMethod3()) {
            method3();
        }
    }

    void method1() {
        System.out.println("AbstractTemplate.method1()");
    }

    abstract void method2();

    abstract void method3();
    
    Boolean hookMethod3() {
        return false;
    }
}

class ConcreteClass1 extends AbstractTemplate {

    @Override
    void method2() {
        System.out.println("ConcreteClass1.method2()");
    }

    @Override
    void method3() {
        System.out.println("ConcreteClass1.method3()");
    }
    
    @Override
    Boolean hookMethod3() {
        return true;
    }
}
上一篇 下一篇

猜你喜欢

热点阅读