Design Pattern: Template Method

“万变不离其宗,乃是所谓稳中求变。“

key word: 早(晚)绑定,稳定,变化,虚函数,函数指针,回调函数

定义

定义一个操作中的算法的骨架(稳定),而将一些步骤延迟(变化)到子类中。Template Method 使得子类可以不改变(复用)一个算法的结构即可重定义(override 重写)该算法的某些特定步骤。

特点

  • 使用晚绑定而不是早绑定
    晚绑定 早绑定

思想

这一点在 C 的函数指针和回调函数中有体现。在 C++ 中,主要通过虚函数(底层同样为函数指针)的方式实现,让父类去定义“骨架”的规范(所谓稳定的部分),而将变化的部分留给子类去实现,例如子类中重写父类的虚函数,应用端写的回调函数让类库去调用等等。

致谢

感谢 GeekBand 李建忠老师的课程 C++设计模式入门.


Design Pattern: Template Method
https://github.com/Cookiecoolkid/Cookiecoolkid.github.io/2024/12/25/Design-Pattern-Template-Method/
作者
Cookiecoolkid
发布于
2024年12月25日
许可协议