参考资料
http://www.pythontip.com/pythonPatterns/
https://www.runoob.com/design-pattern/design-pattern-tutorial.html
以前没了解过设计模式,最近了解一下,做个粗浅的笔记,慢慢深入理解补充
策略模式
例子:去旅游不同的交通方式
工厂模式
例子:造汽车,每个工厂对应生成自己的产品
抽象工厂
例子:造汽车,一个工厂可以生产同一类品牌的多个产品
抽象工厂模式与工厂方法模式最大的区别在于,抽象工厂中的一个工厂对象可以负责多个不同产品对象的创建 ,这样比工厂方法模式更为简单、有效率
适配器模式
例子:不同动物的声音,统一为一个make_noise函数
共享模式
在类中绑定可变变量,继承或实例化共享这个变量
桥接模式
例子:画图(圆形、三角形、正方形、椭圆)加上色(黑、白、灰)
建造模式
例子:经理指派工人建造
责任链模式
例子:不同评分的产品,分类处理
命令模式
例子:开关操作
装饰器模式
外观模式
把一系列过程调用函数,封装成更高级的一个接口调用
迭代器模式
中介模式
备忘录模式
观察者模式
发布订阅
空对象模式
创建一个空对象取代 NULL 对象实例的检查。
连接池模式
原型模式
这种模式是实现了一个原型接口,该接口用于创建当前对象的克隆。当直接创建对象的代价比较大时,则采用这种模式。例如,一个对象需要在一个高代价的数据库操作之后被创建。我们可以缓存该对象,在下一个请求时返回它的克隆,在需要的时候更新数据库,以此来减少数据库调用。
代理模式
使用一个类代表另一个类的功能。
状态模式
在状态模式(State Pattern)中,类的行为是基于它的状态改变的。这种类型的设计模式属于行为型模式。
模版模式
在模板模式(Template Pattern)中,一个抽象类公开定义了执行它的方法的方式/模板。有一些通用的方法,也有一些抽象方法需要子类去实现。
访问者模式
不同的实例,调用的实现不一样