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)

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

相关推荐
q***33372 小时前
oracle 12c查看执行过的sql及当前正在执行的sql
java·sql·oracle
tobebetter95275 小时前
How to manage python versions on windows
开发语言·windows·python
在未来等你5 小时前
AI Agent设计模式 Day 19:Feedback-Loop模式:反馈循环与自我优化
设计模式·llm·react·ai agent·plan-and-execute
Y***h1875 小时前
第二章 Spring中的Bean
java·后端·spring
9***P3345 小时前
PHP代码覆盖率
开发语言·php·代码覆盖率
8***29315 小时前
解决 Tomcat 跨域问题 - Tomcat 配置静态文件和 Java Web 服务(Spring MVC Springboot)同时允许跨域
java·前端·spring
CoderYanger6 小时前
优选算法-栈:67.基本计算器Ⅱ
java·开发语言·算法·leetcode·职场和发展·1024程序员节
jllllyuz6 小时前
Matlab实现基于Matrix Pencil算法实现声源信号角度和时间估计
开发语言·算法·matlab
q***06296 小时前
Tomcat的升级
java·tomcat
多多*6 小时前
Java复习 操作系统原理 计算机网络相关 2025年11月23日
java·开发语言·网络·算法·spring·microsoft·maven