设计模式之 模板模式、策略模式、工厂模式

看完三种模式觉得有点相似,总结一下差异以巩固知识。

模板模式

使用模板进行通用的操作,将可变的接口使用钩子(可子类覆盖的非纯虚函数)将可变接口由子类执行编写。

子类先调用基类的方法,然后会调用自己的个性化方法。


设计模式之 模板模式、策略模式、工厂模式_第1张图片

策略模式

策略模式比较简单,策略使用组合而不是继承。意思是策略是目标类的一个成员变量,而不是基类的固定方法。将可变的不同策略编写为接口成员(使用接口Java或者抽象类C++),子类根据接口成员自己设置其接口的不同实现。

比如手机语言,可以汉语和英语。添加一个设置项,可以分别去设置汉语、英语等。


设计模式之 模板模式、策略模式、工厂模式_第2张图片
设置不同鸭子的飞行和叫声

工厂模式

定义通用的父类,工厂通过不同参数创建不同的子类。工厂是生存者,外界发命令,工厂根据不同的命令创造不同的对象。

concrete指的是具体的对象,也就是抽象类的具体实现。这个词需要被牢记。

设计模式之 模板模式、策略模式、工厂模式_第3张图片


总结叙述

设计模式之 模板模式、策略模式、工厂模式_第4张图片

本文为简述程序设计的设计模式之一,非普及文章,也没有科普价值。007战友评论不必为难,回复已阅二字即可。

你可能感兴趣的:(设计模式之 模板模式、策略模式、工厂模式)