设计模式-模板方法模式

模板方法:

定义一个操作的算法骨架,而将一些步骤延迟到子类中。Template Method 使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。

 

/**
 * 模板方法模式
 */
public class TemplateMethod {
    public static void main(String[] args) {
        AbstractClass subClass1 = new SubClass();
        subClass1.operation();
        AbstractClass subClass2 = new SubClass2();
        subClass2.operation();
    }
}

abstract class AbstractClass{
    public void operation(){
        // open
        System.out.println(" pre ...");
        System.out.println(" step1 ...");
        System.out.println(" step2 ...");
        templateMethod();
        //.....
    }

    protected abstract void templateMethod();
}

class SubClass extends AbstractClass{

    @Override
    protected void templateMethod() {
        System.out.println("SubClass executed");
    }
}

class SubClass2 extends AbstractClass{

    @Override
    protected void templateMethod() {
        System.out.println("SubClass2 executed");
    }
}

 

posted @ 2021-05-20 22:29  炼金术士0z  阅读(38)  评论(0)    收藏  举报