模板方法算是设计模式中比较简单的一种了,为何简单,看完就知道了。
程序员
下面这个是个父类,在实际的项目中,能够是一个动态库的代码,也能够是一个某些不容易改变的代码。也就是说这个类是稳定设计模式
下面两个类是子类,主要用于对父类的扩展,若是说上面那个类是第三方库的话,那么子类只须要重写父类的函数,就能够了,不须要本身写逻辑ide
如今看看主函数中怎么调用函数
能够看到,调用父类中的Run函数时,执行的结果是不一样的,是具体每一个子类中的实现。学习
如今看看,模板方法是否是很简单,跟我们C++的多态是否是区别不大?spa
这里仍是有区别,这时候再看父类设计
父类里面存在着一个Run函数,这个函数有两个稳定的函数,一个变化的函数。blog
假如如今父类是写的动态库代码,子类是应用程序代码。那么我们的流程是在哪里实现?没错,就是父类的Run函数,为何要这么实现呢?图片
若是在子类中实现业务流程,那么就是子类调用父类,这叫早绑定;而在父类中实现业务,经过虚函数的变化,实现父类调用子类代码,就是晚绑定。早绑定和晚绑定的区别,后续会详细讨论。it
我是程序员的颈椎,欢迎你们一块儿学习交流QQ群689930130