第8章 模板方法模式——封装算法

在上一章中,我们首先对命令设计模式进行了概述,该模式利用一个对象来封装执行操作或稍后触发事件所需的全部信息。然后,我们利用UML图展示了命令设计模式的概念,并借助Python实现演示了它在现实世界中的应用。接着,我们讨论了命令模式的优缺点,并在常见问答部分进行了更广泛的探讨,最后对章节内容进行了相应的总结。

在本章中,我们将讨论模板设计模式,其实命令模式和模板模式都属于行为模式。我们将介绍模板设计模式,并讨论如何在软件应用程序开发中应用该模式。我们还将提供一个示例,并利用Python v3.5来实现它。

在本章中,我们将简要介绍以下主题:

  • 模板方法设计模式简介;
  • 模板方法模式及其UML图;
  • Python v3.5代码实现真实用例;
  • 模板方法模式的优缺点;
  • 好莱坞原则、模板方法和模板钩子;
  • 常见问答。

阅读本章后,你将能够分析模板设计模式适用的情况,并有效地使用它们来解决设计相关的问题。最后,我们还将对模板方法模式的所有讨论进行总结。

正如我们在上一章中所看到的,行为模式主要关注对象的响应性。它处理对象之间的交互以实现更强大的功能。模板方法模式是一种行为设计模式,通过一种称为模板方法的方式来定义程序框架或算法。例如,你可以将制作饮料的步骤定义为模板方法中的算法。模板方法模式还通过将这些步骤中的一些实现推迟到子类来帮助重新定义或定制算法的某些步骤。这意味着子类可以重新定义自己的行为。例如,在这种情况下,子类可以使用制作饮料的模板方法来实现沏茶的步骤。需要重点关注的是,步骤的改变(如子类所做的)并不影响原始算法的结构。因此,在模板方法模式中的子类可以通过覆盖来创建不同的行为或算法。

在讨论模板方法模式的时候,按照软件开发术语来说,我们可以使用抽象类来定义算法的步骤。这些步骤在模板方法模式的上下文中也称为原始操作。这些步骤通常用抽象方法定义,而模板方法则用来定义算法。 ...

Get Python设计模式(第2版) now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.