模板方法模式

模板方法模式在抽象类中定义一个操作的算法的骨架,一些步骤延迟到子类中。

使用场景:

  1、多个子类共有方法,且逻辑相同

  2、中要的、复杂的方法,可以考虑作为模板方法

抽象类

package com.alphajuns.templateMethod;

public abstract class Template {

    public abstract void print();

    public void update() {
        System.out.println("开始打印");
        for (int i = 0; i < 5; i++) {
            // 调用打印方法,实际实现位于实现类中
            print();
        }
    }

}

 子类

package com.alphajuns.templateMethod;

public class ConcreteTemplate extends Template {

    @Override
    public void print() {
        System.out.println("子类实现方法");
    }

}

 测试类

package com.alphajuns.templateMethod;

public class Test {

    public static void main(String[] args) {
        Template template = new ConcreteTemplate();
        template.update();
    }

}

 输出

 以上案例,在抽象类的update()方法中调用了抽象方法print(),而print()方法的实现位于子类中,如果存在其它子类,具体实现便为该子类的print()

可参考菜鸟教程的模板方法模式

应用案例

利用模板方法模式导出excel文件

利用模板方法模式导出cvs文件

原文地址:https://www.cnblogs.com/alphajuns/p/13202714.html