美文网首页
设计模式 - 模板方法模式

设计模式 - 模板方法模式

作者: arrow_zh | 来源:发表于2019-08-15 16:31 被阅读0次
模板方法模式的结构
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生命周期

相关文章

网友评论

      本文标题:设计模式 - 模板方法模式

      本文链接:https://www.haomeiwen.com/subject/ftnzjctx.html