模板方法模式

模板方法模式 (Template Method Pattern): 定义了一个算法的骨架,并允许子类为一个或多个步骤提供实现,模板方法模式使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。

适用场景

  • 一次性实现算法的不变部分,并将可变的行为留给子类来实现。

  • 各子类中公共的行为被提取出来并集中到一个公共的父类中,从而避免代码重复。

优点

  • 提高复用性,将相同部分的代码放在抽象的父类中

  • 提高扩展性,将不同的代码放在不同的子类中

  • 符合开闭原则

缺点

  • 类数目增加

  • 增加了系统实现的复杂度

  • 继承关系自身缺点,如果父类添加新的抽象方法,所有子类都要修改一遍

我们引入一种应用场景。产品线上可以使用一种产品线生产不同系列的产品,每种产品同属一种产品线,但是具体的实现细节有所差别。

Golang Demo

Java Demo

UML

模板方法模式UML

补充另一个版本的Java/Scala Demo 以及源码解析

Java Demo_

Scala Demo

UML_

源码解析

Last updated

Was this helpful?