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)

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

相关推荐
今天你TLE了吗16 分钟前
JVM学习笔记:第八章——执行引擎
java·jvm·笔记·后端·学习
java1234_小锋22 分钟前
Java高频面试题:Redis里什么是缓存击穿、缓存穿透、缓存雪崩?
java·redis·缓存
me83223 分钟前
【Java】踩坑实录:Spring Boot + Nginx 本地部署404终极排查:从80端口被占用到配置生效全流程
java·spring boot·nginx
6+h25 分钟前
【Spring】AOP核心之原始对象与代理对象
java·python·spring
君爱学习26 分钟前
SpringCloud-微服务拆分
java
礼拜天没时间.31 分钟前
力扣热题100实战 | 第25期:K个一组翻转链表——从两两交换到K路翻转的进阶之路
java·算法·leetcode·链表·递归·链表反转·k个一组翻转链表
y = xⁿ1 小时前
【从零开始学习Redis|第四篇】从底层理解缓存问题:雪崩、击穿、穿透与一致性设计
java·redis·学习·缓存
江湖有缘1 小时前
本地化JSON 处理新方案:基于 Docker的JSON Hero部署全记录
java·docker·json
御坂10101号1 小时前
「2>&1」是什么意思?半个世纪的 Unix 谜题
java·数据库·bash·unix
鱼骨不是鱼翅1 小时前
个人简历面试复习-----设计模式篇(一)
设计模式