• 模板方法模式小记【原创】


          模板方法模式,定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类中可以不改变的一个算法的结构即可重定义该算法的某些特定步骤。

          首先来看下模板方法模式的结构图:

          AbstractClass是抽象类,其实也就是一抽象模板,定义并实现了一个模板方法。即templeteMethod。这模板方法一般是一个具体方法(在抽象类中实现了的基本方法叫做具体方法;在抽象类中没有实现,在子类中实现了叫做抽象方法),它给出了一个顶级逻辑的骨架,而逻辑的组成步骤(doAnything、doSomething)在相应的抽象操作中,推迟到子类实现。顶级逻辑也可以调用一些具体方法。子类不重写templeteMethod方法

    来看一下AbstractClass类:

    具体模板类:

    客户端就比较简单了:

    可以看出,每一个ConcreteClass都可以给出这些抽象方法的不同实现,从而使得顶级逻辑的实现(templeteMethod)各有不同。

    模板方法适用于,当不可变的和可变的行为在方法的子类实现中混合在一起的时候,不变的行为就会在子类中重复出现。我们通过模板方法模式把这些行为搬迁到单一的地方(templeteMethod),这洋酒帮助子类摆脱重复的不变的行为的纠缠。

  • 相关阅读:
    是什么阻止你达成人生的目标?
    安装cocoa pods
    Mac安装mysql
    Mac安装jee开发环境,webservice环境搭建
    Mac使用Github
    从一个app开始学iOS
    Macbook Pro开机黑屏了。
    U盘安装OSX
    数据分析有时候的结果并不令人满意
    vmvare fusion 8
  • 原文地址:https://www.cnblogs.com/winkey4986/p/2434083.html
Copyright © 2020-2023  润新知