Template Method模式
《设计模式》中描述Template Method模式的意图是:定义一个操作中算法的骨架,而将一些步骤延迟到子类中。不改变算法的结构而重定义它的步骤。
Template Method模式 | 关键特征 |
---|---|
意图 | 定义一个操作中算法的骨架,而将一些步骤延迟到子类中。不改变算法的结构而重定义它的步骤。 |
问题 | 要完成在某一细节层次一致的过程或一系列步骤,但其中个别步骤在更详细的层次上的实现可能不同。 |
解决方案 | 允许定义可变的子步骤,同时保持基本过程一致。 |
参与者与协作者 | Template Method模式由一个抽象类组成,这个抽象类定义了需要覆盖的基本TemplateMethod方法。每个从这个抽象类派生的具体类将为此模板实现新的方法。 |
效果 | 模板提供了一个很好的代码复用平台。它还有助于确保所需步骤的实现。它将每个Concrete类的覆盖步骤绑定起来,因此只有在这些变化总是并且只能一起发生时,才应该使用Template Method模式。 |
实现 | 创建一个抽象类,用抽象的方式实现一个过程。这些抽象方法必须在子类中实现,以执行过程的每个步骤。如果这些步骤是独立变化的,那么每个步骤都可以用Strategy模式来实现。 |
参考《设计模式解析》第二版