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

设计模式学习-模板方法模式

作者: most_xiaoya | 来源:发表于2018-11-10 14:04 被阅读0次

    定义:模板方法模式在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。
    模板方法是设计模式中较好理解的一种,他的使用场景是:当有一个业务有N个步骤(模板),其中一部分步骤是永恒不变的,那么就将不变的这些步骤抽象到父类中,可能变化的步骤留给子类去实现。

    egg:一个很好的例子就是做饭:
    我们做法的步骤一般就是:1.打开抽油烟机
    2.生火
    3.西红柿炒蛋
    4.关火
    5.关闭抽油烟机
    但是1,2,4,5 是固定不变的,而只有 3 步骤可能炒的东西不一样,所以就可以让子类去具体实现步骤3 ,而父类实现1,2,4,5 并且执行顺序 要final ,子类不可更改。

    类图.jpg

    模板中的钩子
    在模板方法中我们可以提前预埋多个钩子,让子类有一定的能力影响抽象类中的算法流程 ,为了方便还可以在父类中设置开关,方便子类对钩子的控制。
    其实 :可以让子类实现前置和后置操作就是模板方法模式的应用

    总结:模板方法模式是将子类中不变的部分抽象到父类,可变的部分由子类去实现。
    优点:封装不变公共代码,便于维护。可变部分的代码由子类自由决定,扩展性强
    缺点:每新增一个不同的实现都需要增加一个子类,可能导致类数量变多,增加系统复杂性

    相关文章

      网友评论

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

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