Template Method Pattern

定义:在一个方法中定义一个算法的框架,而将一些步骤延迟到子类中。
模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。
模板方法模式主要应用于 框架设计中,在日常的应用设计中也被经常使用。 
模板方法模式 - DaySpring - DaySpring的博客
模板方法中的非final方法(默认实现或不做事的方法)称为“钩子”

钩子是一种被声明在抽象类中的方法,但只有空的或者默认的实现。钩子的存在,可以让子类有能力对算法的不同点进行挂钩。要不要挂钩,由子类自行决定。

模板方法模式 - DaySpring - DaySpring的博客
 
  适用性:
1. 一次性实现一个算法的不变的部分,并将可变的行为留给子类来实现。
2. 各子类中公共的行为应被提取出来并集中到一个公共父类中以避免代码重复。
3. 控制子类扩展。模板方法只在特定点调用Hook操作,这样就只允许在这些点进行扩展。

猜你喜欢

转载自www.cnblogs.com/xiaowater/p/9995326.html