设计模式 - 模板方法模式

模板方法模式的结构

image.png

抽象模板(Abstract Template)角色有如下责任:
定义一个或者多个抽象方法提供给子类实现。
提供模板方法定义为final避免子类修改,然后在方法中定义执行顺序。
具体模板(Concrete Template)角色又如下责任:
实现父类的所有抽象方法。
每个模板方法都可以具有不同的实现方式。
模板模式的关键是:子类可以置换掉父类的可变部分,但是子类却不可以改变模板方法所代表的顶级逻辑。
参见代码:

public abstract class AbstractClass {

    public abstract void oper1();

    public abstract void oper2();

    public abstract void oper3();

    public final void templateMethod() {
        this.oper1();
        this.oper2();
        this.oper3();
    }
}

public class ConcreteClass extends AbstractClass {
    @Override
    public void oper1() {
        System.out.println("操作1");
    }

    @Override
    public void oper2() {
        System.out.println("操作2");
    }

    @Override
    public void oper3() {
        System.out.println("操作3");
    }
}

常见模板方法:HttpServlet, Android Activity生命周期

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容