关于设计模式的一点总结

一、GoF 23种设计模式

1.分类

GoF 23种设计模式可分为几类:创建型、结构型和行为型。如下表

|-----|-----------------------------------------------------------------|
| 分类 | 设计模式 |
| 创建型 | 单例模式、工厂方法模式、抽象工厂模式、原型模式、建造者模式 |
| 结构型 | 代理模式、适配器模式、装饰者模式、桥接模式、组合模式、门面模式、享元模式 |
| 行为型 | 模板方法模式、观察者模式、策略模式、解释器模式、责任链模式、命令模式、迭代器模式、调解者模式、备忘录模式、状态模式、访问者模式 |

2.关系

设计模式之间的关系如下图

二、几种容易混淆的设计模式的比较

策略模式与委派模式

策略模式注重的是同类型算法之间的替换,可以避免大量使用if...else...;而委派模式注重的是任务的分发和调度,在任务分发的过程中,如果大量使用if...else...,根据情况也可以考虑使用策略模式,相当于在委派模式内部又套了一个策略模式。注意,委派模式不属于GoF 23种设计模式。

装饰者模式与代理模式

装饰者模式是给对象动态扩展,而代理模式注重控制对象的访问;代理模式通常在代理类中创建被代理对象的实例,而装饰者模式通常把被装饰者作为构造参数。(这里说的是通常情况下,实际上静态代理也可以构造器传参)。

装饰者模式与适配器模式

装饰者模式中装饰者与被装饰者可以实现相同的接口,而适配器模式中适配器与被适配者可以实现不同的接口。

三、心得体会

设计模式远不止GoF的23种,设计模式其实是经验的总结,为我们提供了一个可参考的解决方案。学习设计模式就是为了当我们遇到问题时,能够用前人的经验去解决问题,所以不需要去死记硬背,要理解每种设计模式解决的是什么样的问题,在需要的时候能够想起有这样一种方法即可。

今天简单总结一下,以后继续补充。

相关推荐
看山是山_Lau7 小时前
建造者模式:复杂对象如何一步步构建
设计模式·建造者模式
霸道流氓气质8 小时前
业务链路追踪日志设计模式 — 从原理到实践
设计模式
nnsix1 天前
设计模式 - 建造者模式 笔记
笔记·设计模式·建造者模式
cui17875681 天前
矩阵拼团 + 复购拼团:新零售最稳的复购模式,规则简单
大数据·人工智能·设计模式·零售
百珏1 天前
[灰度发布]:全链路透传组件:APM、自研方案与 Java Agent 的实现取舍
后端·设计模式·架构
likerhood1 天前
设计模式 · 享元模式(Flyweight Pattern)java
java·设计模式·享元模式
AI大法师1 天前
从 Adobe 焕新看品牌系统升级:Logo、主色、字体与产品体验如何重新对齐
大数据·人工智能·adobe·设计模式
贵慜_Derek1 天前
《从零实现 Agent 系统》连载 03|控制循环:感知—决策—行动—反思
人工智能·设计模式·架构
nnsix1 天前
设计模式 - 原型模式 笔记
笔记·设计模式·原型模式
nnsix1 天前
设计模式 - 适配器模式 笔记
笔记·设计模式·适配器模式