设计模式根据功能功结构分类三大类

1、创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。

2、结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。

3、行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。

以下是各自的类图:

一、创建型模式

1、工厂方法模式

23种设计模式 python 23种设计模式类图_ci

2、抽象工厂模式

23种设计模式 python 23种设计模式类图_ci_02

3、单例模式

23种设计模式 python 23种设计模式类图_代理模式_03

4、建造者模式

23种设计模式 python 23种设计模式类图_代理模式_04

5、原型模式

23种设计模式 python 23种设计模式类图_23种设计模式 python_05

二、结构型模式

1、适配器模式

23种设计模式 python 23种设计模式类图_享元模式_06

2、装饰器模式

23种设计模式 python 23种设计模式类图_享元模式_07

3、代理模式

23种设计模式 python 23种设计模式类图_23种设计模式 python_08

4、外观模式

23种设计模式 python 23种设计模式类图_享元模式_09

5、桥接模式

23种设计模式 python 23种设计模式类图_ci_10

6、组合模式

23种设计模式 python 23种设计模式类图_享元模式_11

7、享元模式

23种设计模式 python 23种设计模式类图_代理模式_12

三、行为型模式

1、策略模式

23种设计模式 python 23种设计模式类图_23种设计模式 python_13

2、模板方法模式

23种设计模式 python 23种设计模式类图_代理模式_14

3、观察者模式

23种设计模式 python 23种设计模式类图_代理模式_15

4、迭代子模式

5、责任链模式

23种设计模式 python 23种设计模式类图_23种设计模式 python_16

6、命令模式

23种设计模式 python 23种设计模式类图_23种设计模式 python_17

7、备忘录模式

23种设计模式 python 23种设计模式类图_ci_18

8、状态模式

23种设计模式 python 23种设计模式类图_代理模式_19

9、访问者模式

23种设计模式 python 23种设计模式类图_享元模式_20

10、中介者模式

23种设计模式 python 23种设计模式类图_代理模式_21

11、解释器模式

 

四、总结

1、设计原则

1)开闭原则(Open Close Principle)

  对修改关闭,对扩展开放。通过组合、继承、适配、装饰、克隆等方法来为原对象添加功能或修改功能

2)里氏代换原则(Liskov Substitution Principle)

  任何基类可以出现的地方,子类一定可以出现

3)依赖倒转原则(Dependence Inversion Principle)

  对接口编程,依赖于抽象而不依赖于具体

4)接口隔离原则(Interface Segregation Principle)

  使用多个隔离的接口,比使用单个接口要好

5)迪米特法则(最少知道原则)(Demeter Principle)

  一个实体应当尽量少的与其他实体之间发生相互作用,使得系统功能模块相对独立

6)合成复用原则(Composite Reuse Principle)

  尽量使用合成/聚合的方式,而不是使用继承

2、模式类图可能是相似的,但其实里面的关系内涵并不一样。例如装饰模式与代理模式,一个是为了添加功能,一个是为了限制原功能的使用。所以在实际实用过程中要注意对象的命名和从模式的内涵出发,选用合适的模式。

3、在面向对象的世界里,结构并不能揭示关系,关系是通过特定的关键字与其内在联系来决定的,这就像两对并行走的人,年龄、身高都一样。但它们的关系不一样,一对是父子,一对是朋友。