关于设计模式的一点总结

一、GoF 23种设计模式

1.分类

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

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

2.关系

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

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

策略模式与委派模式

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

装饰者模式与代理模式

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

装饰者模式与适配器模式

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

三、心得体会

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

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

相关推荐
Maddie_Mo15 分钟前
智能体设计模式 第二章:路由模式
设计模式
一条闲鱼_mytube3 小时前
智能体设计模式(五)人机协同-知识检索RAG-智能体间通信
网络·人工智能·设计模式
小码过河.3 小时前
设计模式——建造者模式
单片机·设计模式·建造者模式
小码过河.5 小时前
设计模式——工厂方法模式
设计模式·工厂方法模式
把csdn当日记本的菜鸡6 小时前
Java设计模式简单入门
java·开发语言·设计模式
老蒋每日coding6 小时前
AI Agent 设计模式系列(十一)—— 目标设定和监控模式
人工智能·设计模式·langchain
蔺太微7 小时前
外观模式(Facade Pattern)
设计模式·外观模式
进击的小头7 小时前
C语言实现设计模式的核心基石
c语言·开发语言·设计模式
Engineer邓祥浩7 小时前
设计模式学习(15) 23-13 模版方法模式
java·学习·设计模式
茶本无香7 小时前
设计模式之四:建造者模式(Builder Pattern)详解
java·设计模式·建造者模式