美文网首页
模板方法模式

模板方法模式

作者: 落地生涯 | 来源:发表于2019-05-24 14:38 被阅读0次

    一、模板方法模式概述

    模板方法模式在一个方法中定义一个算法的股价,而将一些不走延迟加载到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法的某些步骤。

    二、模板方法模式结构

    模板方法的角色:

    AbstractClass,实现一个模板方法,定义了算法的骨架,具体子类将重新定义算法的其中某些步骤。AbstractClass其实就是一个抽象模板,定义并实现了一个模板方法,这个模板方法一般是一个具体的方法,它给出了一个顶级逻辑的骨架,而逻辑的组成步骤在相应抽象操作中,推迟到子类实现。当然顶级逻辑也可能会调用一些具体方法。

    ConcreteClass,实现具体的某些算法与特定子类相关的步骤,ConcreteClass实现父类所定义的一个或者多个抽象方法,每一个AbstractClass都可以有任意多个ConcreteClass与之对应,而每一个ConcreteClass都可以给出这些抽象方法(也就是顶级逻辑的组成步骤)的不同实现,从而使得顶级逻辑的实现各不相同。

    三、代码示例

    冲咖啡和冲茶都有类似的流程,但是某些步骤会有点不一样,要求复用那些相同步骤的代码。

    AbstractClass

    ConcreteClass

    测试代码

    四、模板方法模式优缺点

    1、优点

    (1)重用代码,模板方法通过把不变的行为搬移到父类,去除了子类中的重复代码。

    (2)子类实现算法的细节,有助于算法的扩展。

    (3)通过一个父类调用子类实现的操作,通过子类扩展增加新的行为,符合开闭原则。

    2、缺点

    模板方法子类执行的结果影响了父类的结果,会增加代码的阅读难度。

    相关文章

      网友评论

          本文标题:模板方法模式

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