模板方法模式:定义一个算法的骨架,将一些步骤延迟到子类中,模板方法使得子类不改变算法的结构但可以重新定义该算法特定的步骤。既要约束子类的行为,又要为子类提供公共的行为,必须使用抽象类。
本质:就是固定算法的骨架。
此模式体现出变与不变。将不变的抽象出来提供公共行为。
模板方法的一个目的:就在于让其他类来扩展或者具体实现在模板方法中固定的算法骨架中特定的算法步骤。
主要使用继承方式,来让父类在运行期间可以调用到子类的行为。
java回调技术,通过回调在接口中定义的方法,调用到具体的实现类中的方法(匿名类对象),达到模板方法的效果。它应该属于模板方法模式的一种变形实现。回调机制采用委托的方式来组合功能。他的耦合度要比继承低,比较灵活。
Template Method要点
1、 Template Method模式是一种非常基础性的设计模式,在面向对象系统中有着大量的应用。它用最简洁的机制(虚函数的多态性)为了很多应用程序框架提供了灵活的扩展点,是代码复用方面的基本实现结构。
2、 除了可以灵活应对子步骤的变化外,“Don't call me.Let me Call you”的反向控制结构是Template Method的典型应用。“Don’t call me.Let me Call you”是指一个父类调用一个子类的操作,而不是相反。
3、 在具体实现方面,被Template Method调用的虚方法可以具有实现,也可以没有任何实现(抽象方法、纯虚方法),但一般推荐将它们设置为protected方法。可以没有具体实现的方法应该称为hook operation(钩子操作),提供了缺省的行为,子类可以在必要时进行扩展。
4、 尽量减少primitive operation,因为需要重新定义的操作越多,客户程序就越长
类图如下:
- 大小: 2.7 KB
分享到:
相关推荐
设计模式C++学习之模板方法模式(Template Method)
Head First 设计模式 (八) 模板方法模式(Template Method pattern) C++实现
C++设计模式课件3_Template Method_模板方法.pdf
Template Method.rarTemplate Method.rarTemplate Method.rarTemplate Method.rar模板设计模式
C++设计模式代码资源3_Template Method_模板方法.zip
c++设计模式-行为型模式-模板方法模式;qt工程;c++简单源码; 模板方法(Template Method)模式的定义如下:定义一个操作中的算法骨架,而将算法的一些步骤延迟到子类中,使得子类可以不改变该算法结构的情况下重...
主要介绍了C++设计模式编程中Template Method模板方法模式的运用,讲到了包括模板方法模式中的细分方法以及适用场景,需要的朋友可以参考下
模板方法模式是一种行为设计模式,它在一个方法中定义算法的骨架,将一些步骤延迟到子类中实现。 具体来说,模板方法模式的关键特点包括: 抽象类:在抽象类中定义一个模板方法,该方法给出了算法的框架。 具体...
模板方法(TemplateMethod) 用意:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。
C++设计模式笔记(03-02) – Template Method_模板方法(下): https://blog.csdn.net/mofan6930/article/details/104383750 参考书籍:《设计模式:可复用面向对象软件的基础》 参考课程:《C++设计模式》-李建忠 ...
- 模板方法模式(Template Method) - 策略模式(Strategy) - 责任链模式(Chain of Responsibility) - 中介者模式(Mediator) - 访问者模式(Visitor) - 命令模式(Command) - 解释器模式(Interpreter) - 迭代器...
主要为大家详细介绍了C++设计模式之模板方法模式TemplateMethod,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
Leitura-Boleto-模板方法使用设计模式模板方法使用Java读取CSV文件-大学作业
5.10 TEMPLATE METHOD(模板方法)—类行为型模式 214 5.11 VISITOR(访问者)—对象行为型模式 218 5.12 行为模式的讨论 228 5.12 1 封装变化 228 5.12.2 对象作为参数 228 5.12.3 通信应该被封装还是被分布 229 ...
设计模式(21)-Template Method Pattern 204 一、 模板方法(Template Method)模式 204 二、 模版方法模式的结构 204 三、 模板方法模式的示意性代码 205 四、 继承作为复用的工具 207 五、 一个实际应用模板方法...
设计模式(21)-Template Method Pattern 一、 模板方法(Template Method)模式 二、 模版方法模式的结构 三、 模板方法模式的示意性代码 四、 继承作为复用的工具 五、 一个实际应用模板方法的例子 六、 ...
设计模式——模板方法模式模板方法模式(Template Method Pattern):定义一个操作中的算法骨架,将一些步骤延迟至子类中.模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤使用场景:当不变和可...
模板方法模式(Template Method Pattern):定义一个操作中的算法骨架,将一些步骤延迟至子类中.模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 下面是一个模板方法模式的一个demo: #!/...
5.10 TEMPLATE METHOD(模板方法)——类行为型模式 5.11 VISITOR(访问者)——对象行为型模式 5.12 行为模式的讨论 第六章 结论 6.1 设计模式将带来什么 6.2 一套通用的设计词汇 6.3 书写文档和学习的辅助手段 ...