创建型

结构型

差异

I.建造者模式与外观模式

虽然属于不同类型,但原理类似

II.代理模式与命令模式

虽然属于不同类型,但原理类似,前者代理类需承担额外的功能,前者核心为代理

详情

代理模式

image.png

适配器模式

image.png

桥接模式(待)

image.png

装饰模式

image.png

外观模式

image.png

享元模式

image.png

组合模式

image.png
image.png

行为型

差异

I.策略VS状态

状态的变更有依赖关系,策略较为独立

II.状态VS观察者

前者链式环形关联1-2-3-1,后者发散式影响1-N

III.观察者VS中介者

前者不会被反向影响,后者可以看作既是观察者又是被观察者

II和III的区别

II之间的区别比较独立,不存在替代关系。III属于上下级类型

I、II、III总结

1-1、1-1-1、1-N、N-N

IV.命令VS责任链

前者纵向扩展,后者横向扩展。即执行N种命令VS分N级执行命令

模板方法模式

image.png

解释器模式

image.png

对象

策略模式

image.png

命令模式

image.png

责任链模式

image.png

状态模式

image.png

观察者模式

image.png

中介者模式

image.png

迭代器模式(未)

image.png

访问者模式(未)

image.png

备忘录模式

image.png

由中介者开始出现了第三角色,一开始由LIST承担,后面开始有独立的角色

总结

各个模式间有些许差异,熟练掌握后,看见相应的场景自然能按照相应的模式进行设计。甚至可以忽略具体用的那种模式。但是为了他人和未来的自己,明确所选择的模式很有意义,