Java设计模式:模板方法模式

一、什么是模板方法模式

在一个方法中定义一个算法的骨架,而将一些步骤延续到子类中。模板方法使得子类在不改变算法结构的情况下,重新定义算法中的某些步骤。

二、知识要点

  • “模板方法”定义了算法的步骤,把这些的实现延续到了子类中。
  • 模板方法模式为我们提供了一种代码复用的重要技能。
  • 模板方法的抽象类可以定义具体的方法、抽象方法和钩子。
  • 抽象方法由子类实现。
  • 钩子是一种方法,他在抽象类中不做事,或者只是做默认的事情,子类可以选择要不要去覆盖它。
  • 为了防止子类改变模板方法中的算法,可以将模板方法声明为final。
  • 好莱坞原则告诉我们,将决策权放在高级模块中,以便决定如何以及何时调用底层模块。
  • 你将在真实代码中看到模板方法模式的许多变体,不要期待它们是一眼就可以被你认出的。
  • 策略模式和模板方法模式都封装算法,一个用组合,一个用继承。
  • 工厂方法是模板方法的一种特殊版本。

三、类图

Java设计模式:模板方法模式_第1张图片
模板方法模式类图.png

四、项目实践

需求:对关键词进行演绎,其中有多种演绎规则,说的通俗一点就是输入关键词和演绎规则列表输出演绎后的关键词。
分析:不同规则演绎生成关键词的步骤是相同的,所以可以采用模板方法设计模式来实现。
  • 设计类图
  • 具体实现代码

你可能感兴趣的:(Java设计模式:模板方法模式)