总第75篇
本篇将梳理余下的三种设计模式:模板模式、桥接模式和解释器模式。
1.模板模式
模板模式非常简单,它是定义一个操作中的算法框架,将一些步骤延迟到子类中,使得子类可以改变一个算法的结构,重新定义算法的某些特定步骤。
模板模式的通用类图关系如下图所示:
![v2-a791f206b220449ebb97718ecbf62c28_b.jpg](https://i-blog.csdnimg.cn/blog_migrate/6519e83745e21a99f7d8da63fca4f1a4.png)
Template
是一个模板类,用于定义模板的方法,TemplateImplA
和TemplateImplB
是模板类的具体子类,用于实现算法框架中的一些特定步骤。
模板方法一般在下面几处场景使用:
- 多个子类有公有的方法,并且逻辑基本相同时;
- 重要、重复的算法,可以把核心算法设计为模板方法,周边的相关细节功能则由各个子类实现;
- 重构时,模板方法模式是一个经常使用的模式,把相同的代码抽取到父类中,然后通过钩子函数约束其行为。
最后给出模板方法模式的概括图。