今天看《研磨设计模式》的模板方法设计模式,让我异常兴奋,居然在上个项目中我负责的部分我就是用这个方式,我还不知道有一个模式与它对应,这就是理论来自实践的原因,很多东西我们都这样做,但是并没去总结。
其实,模板方法设计模式并不是那么难理解,用C++来说,就是定义一个虚基类,该虚基类就是一个模板,需要使用该模板的就从该类继承。如果共有部分就由该虚基类来实现,如果子类有特殊要求的,就自己实现一个该函数,用C++来说就是覆盖了父类的实现。
另:
个人理解
C++中的抽象类对应JAVA中说的接口interface,虚基类对应JAVA中的抽象类。以及这种方式在《研磨设计模式》中作者称为钩子。让我想起是不是可以替代回调函数,但是好像在C++编程中使用回调函数也是很多的啊。主要是回调使用很简单。