设计模式-模板模式

模板模式

  在一个抽象类中公开定义执行它的方法的模板。它的子类可以按需重写方法,但调用将以抽象类中定义的方式进行。

优点

  • 封装不变部分,扩展可变部分。
  • 提取公共代码,便于维护。
  • 行为由父类控制,子类实现。

缺点

  • 每一个不同的实现都需要一个子类来实现,导致类的个数增加,使得系统更加庞大。

适用场景

  • 有多个子类有相同的方法,且逻辑相同。
  • 重要的、复杂的方法,可以考虑作为模板方法。例如:spring中对hibernate封装的开启事务、获取session、关闭session等函数。

类图

image

1
2
3
4
Game dota = new Dota();
dota.play();
Game lol = new LOL();
lol.play();

参考