目录

大话设计模式10:模版方法模式

大话设计模式:10.模版方法模式

模版方法模式:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模版方式使得一个子类可以不改变一个算法的结构即可重新定义该算法的某些特定步骤

TL;DR:模版方法模式通过父类抽象高层次的过程或步骤,实现重复步骤,而由子类实现不同的具体过程的方式,保持结构同时,最大程度复用代码,避免重复。

模版方法模式结构图

1.优点

  1. 提供复用代码平台:从高层次上看相同,而具体实现细节不同时,把不变行为移到父类,除去子类中的重复代码
  2. 提供了抽象:使得代码的逻辑性更强

2.实现细节

在父类中定义方法,其中在子类相同的部分直接实现,不同的部分,调用虚方法,父类中定义虚方法,并由子类各自实现。在使用时,通过多态,声明父类,用子类构造函数实例化,调用父类方法时,按照父类中方法的顺序,依次调用子类重写的虚方法。

3.使用场景

当不变的和可变的行为在方法的子类实现中混合在一起的时候,不变的行为会在子类中重复出现,通过模版方法模式,将这些行为搬移到单一的地方,避免子类中的重复。