FreezeJ' Blog

设计模式简记

2021-11-22

参考资料
http://www.pythontip.com/pythonPatterns/
https://www.runoob.com/design-pattern/design-pattern-tutorial.html

以前没了解过设计模式,最近了解一下,做个粗浅的笔记,慢慢深入理解补充

策略模式

例子:去旅游不同的交通方式

工厂模式

例子:造汽车,每个工厂对应生成自己的产品

抽象工厂

例子:造汽车,一个工厂可以生产同一类品牌的多个产品

抽象工厂模式与工厂方法模式最大的区别在于,抽象工厂中的一个工厂对象可以负责多个不同产品对象的创建 ,这样比工厂方法模式更为简单、有效率

适配器模式

例子:不同动物的声音,统一为一个make_noise函数

共享模式

在类中绑定可变变量,继承或实例化共享这个变量

桥接模式

例子:画图(圆形、三角形、正方形、椭圆)加上色(黑、白、灰)

建造模式

例子:经理指派工人建造

责任链模式

例子:不同评分的产品,分类处理

命令模式

例子:开关操作

装饰器模式

外观模式

把一系列过程调用函数,封装成更高级的一个接口调用

迭代器模式

中介模式

备忘录模式

观察者模式

发布订阅

空对象模式

创建一个空对象取代 NULL 对象实例的检查。

连接池模式

原型模式

这种模式是实现了一个原型接口,该接口用于创建当前对象的克隆。当直接创建对象的代价比较大时,则采用这种模式。例如,一个对象需要在一个高代价的数据库操作之后被创建。我们可以缓存该对象,在下一个请求时返回它的克隆,在需要的时候更新数据库,以此来减少数据库调用。

代理模式

使用一个类代表另一个类的功能。

状态模式

在状态模式(State Pattern)中,类的行为是基于它的状态改变的。这种类型的设计模式属于行为型模式。

模版模式

在模板模式(Template Pattern)中,一个抽象类公开定义了执行它的方法的方式/模板。有一些通用的方法,也有一些抽象方法需要子类去实现。

访问者模式

不同的实例,调用的实现不一样