看完三种模式觉得有点相似,总结一下差异以巩固知识。
模板模式
使用模板进行通用的操作,将可变的接口使用钩子(可子类覆盖的非纯虚函数)将可变接口由子类执行编写。
子类先调用基类的方法,然后会调用自己的个性化方法。
策略模式
策略模式比较简单,策略使用组合而不是继承。意思是策略是目标类的一个成员变量,而不是基类的固定方法。将可变的不同策略编写为接口成员(使用接口Java或者抽象类C++),子类根据接口成员自己设置其接口的不同实现。
比如手机语言,可以汉语和英语。添加一个设置项,可以分别去设置汉语、英语等。
工厂模式
定义通用的父类,工厂通过不同参数创建不同的子类。工厂是生存者,外界发命令,工厂根据不同的命令创造不同的对象。
concrete指的是具体的对象,也就是抽象类的具体实现。这个词需要被牢记。
总结叙述
本文为简述程序设计的设计模式之一,非普及文章,也没有科普价值。007战友评论不必为难,回复已阅二字即可。