JAVA的23种设计模式

设计模式是软件工程中一套被广泛认可的、用于解决特定问题的解决方案。它们是面向对象设计原则的具体应用,帮助开发者避免常见错误,并提高代码的可读性、可维护性和可复用性。设计模式通常分为三大类:创建型模式、结构型模式和行为型模式。

一、创建型模式

1. 单例模式(Singleton)

确保一个类只有一个实例,并提供一个全局访问点。

2. 工厂方法模式(Factory Method)

定义一个创建对象的接口,但让子类决定实例化哪个类。

3. 抽象工厂模式(Abstract Factory)

提供一个创建一系列相关或相互依赖对象的接口。

4. 建造者模式(Builder)

使用多个简单的对象一步步构建成一个复杂的对象。

5. 原型模式(Prototype)

通过复制现有的实例来创建新对象,而不是通过新的关键字。

二、结构型模式

1. 适配器模式(Adapter)

将一个接口转换成客户端所期望的另一种接口。

2. 桥接模式(Bridge)

将抽象与实现分离,使它们可以独立变化。

3. 组合模式(Composite)

将对象组合成树形结构以表示部分整体层次,客户端对单个对象和组合对象的使用具有一致性。

4. 装饰者模式(Decorator)

动态地给一个对象添加一些额外的职责。

5. 外观模式(Facade)

为一个复杂子系统提供一个统一的接口。

6. 享元模式(Flyweight)

使用共享对象来有效支持大量细粒度的对象。

7. 代理模式(Proxy)

为其他对象提供一个代理以控制对这个对象的访问。

三、行为型模式

1. 链式责任模式(Chain of Responsibility)

通过将请求的发送者和接收者解耦,让多个对象都有机会处理这个请求。

2. 命令模式(Command)

将一个请求封装为一个对象,从而可以用不同的请求对客户进行参数化。

3. 解释器模式(Interpreter)

给定一个语言,定义它的文法的一种表示,并定义一个解释器来处理该文法。

4. 迭代器模式(Iterator)

提供一种方法顺序访问一个集合对象而无需暴露其内部表示。

5. 中介者模式(Mediator)

用一个中介对象来封装一系列的对象交互,从而降低对象之间的耦合度。

6. 备忘录模式(Memento)

在不暴露对象实现细节的情况下,捕捉一个对象的内部状态,以便在以后恢复该状态。

7. 观察者模式(Observer)

一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。

8. 状态模式(State)

允许对象在其内部状态发生改变时改变其行为。

9. 策略模式(Strategy)

定义一系列算法,把它们一个个封装起来,并使它们可相互替换。

  1. 模板方法模式(Template Method)

在一个方法中定义一个算法的框架,而将一些步骤延迟到子类中。

  1. 访问者模式(Visitor)

表示一个作用于某对象结构中的各元素的操作,通过增加新操作来增加新的行为,而不改变各元素的类。

相关推荐
特立独行的猫a9 小时前
Windows安装Rust环境 Clang替代GCC MinGW环境LLVM工具链(详细教程)
开发语言·windows·rust·mingw·环境搭建·llvm
程序员黑豆14 小时前
Java字符串详解
java·前端·ai编程
m0_7202450115 小时前
1543.统计好三元组(简单)
开发语言·算法
EntyIU16 小时前
NFS离线部署
java
叠层归一研究院16 小时前
AGI 系统(八):符号范畴嵌入函子 — SymCat ↪ C_M107 严格化
c语言·开发语言·人工智能·算法·transformer·agi
明朝百晓生17 小时前
Deep RL learning[2026/8]
开发语言·javascript·人工智能
weixin-a1530030831617 小时前
python-装饰器
开发语言·python
我的xiaodoujiao18 小时前
快速学习Python基础知识详细图文教程17--类型注解和断点调试
开发语言·python·学习·测试工具
OH_TPC18 小时前
HarmonyOS APP开发---“滤镜大师“图像处理App,需要用到这个库
java·图像处理·华为·harmonyos·鸿蒙
leoZ23120 小时前
AI 辅助开发的五道坎
开发语言·人工智能·视觉检测·bert·php·超分辨率重建·openvino