【设计模式】GoF设计模式学习总结
什么是设计模式#
为解决某一类普遍存在的问题而提供的一种解决方案;
分类及定义#
创建型模式(5)
1、原型模式:通过复制一个已存在对象来生成一个新对象,被复制的对象称为原型;详情...
2、单例模式:一个类只有一个全局实例;详情...
3、生成器模式:对复杂对象的创建过程进行抽象,相同的创建步骤,不一样的创建过程实现,生成不同表示的对象;详情...
4、工厂方法模式:具体的工厂对象负责生产具体的产品对象;详情...
5、抽象工厂模式:就是对一组具有相同主题的工厂进行封装;详情...
简单工厂模式:一个工厂方法,依据传入的参数,生成对应的具体产品对象;//不属于gof-23 详情...
结构型模式(7)
1、装饰模式:通过关联机制给类增加行为,其行为的扩展由修饰对象来决定;详情...
2、享元模式:大量细粒度对象共享复用;详情...
3、桥接模式:将对象的行为抽象为接口,作为抽象类的成员属性在抽象层进行组合;详情...
4、组合模式:树形结构的实现,用于描述“整体-部分”的关系;详情...
5、外观模式:在子系统中的接口之上定义一个更高层次的接口,方便使用子系统中的接口;详情...
6、代理模式:通过代理对象间接控制并访问目标对象的方法;详情...
7、适配器模式:适配器是将一种接口改造成另外一种接口的一个包装类;详情...
行为型模式(11)
1、解释器模式:定义一些语法规则,然后定义一个解析器去解析该语法;详情...
2、访问者模式:在不修改已有程序结构的前提下,通过添加额外的“访问者”来完成对已有代码功能的提升;详情...
3、备忘录模式:保存对象的某个状态并可以恢复到该状态;详情...
4、中介者模式:对象之间通过中介者对象进行交互,而不是直接交互;详情...
5、模板方法模式:使用了JAVA的继承机制,在抽象类中定义一个模板方法,该方法引用了若干个抽象方法(由子类实现)或具体方法;详情...
6、责任链模式:为请求创建一个接收者对象的链,每个接收者包含对另一个接收者的引用,当某个接受者不能处理该请求时,将请求转给下一个接受者;详情...
7、命令模式:将请求封装成命令对象,请求的具体执行由命令接收者执行;详情...
8、状态模式:一个对象的行为根据其内部状态的改变自动变化;详情...
9、策略模式:对象的行为,在不同的环境下,有不同的实现;详情...
10、迭代器模式:提供一种方法访问一个容器对象中各个元素,而又不需暴露该对象的内部细节。详情...
11、观察者模式:一对多的关系,又叫发布-订阅模式,即一个对象的状态发生变化,所有依赖它的对象能够知道该变化并自动更新;详情...
涉及的相关的设计原则#
- 单一职责原则
- 里氏替换原则
- 依赖倒置原则
- 接口隔离原则
- 迪米特法则
- 开闭原则
使用频率排序#
创建型模式(5)
工厂方法模式:★★★★★
抽象工厂模式:★★★★★
单例模式:★★★★☆
简单工厂模式:★★★★☆ //不属于gof-23
原型模式:★★★☆☆
生成器模式:★★☆☆☆
结构型模式(7)
外观模式:★★★★★
代理模式:★★★★☆
组合模式:★★★★☆
适配器模式:★★★★☆
桥接模式:★★★☆☆
装饰模式:★★★☆☆
享元模式:★☆☆☆☆
行为型模式(11)
迭代器模式:★★★★★
观察者模式:★★★★★
命令模式:★★★★☆
策略模式:★★★★☆
模板方法模式:★★★☆☆
责任链模式:★★★☆☆
状态模式:★★★☆☆
备忘录模式:★★☆☆☆
中介者模式:★★☆☆☆
解释器模式:★☆☆☆☆
访问者模式:★☆☆☆☆
另外,网上看到一张图片,总结的挺好的#
图片来自:链接
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· Open-Sora 2.0 重磅开源!