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)

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

相关推荐
SamDeepThinking7 小时前
裁掉那个差程序员后,给你看团队里高手的代码:这个习惯,希望你有
java·后端·程序员
朕瞧着你甚好8 小时前
技术雷达 & Java 集成评估报告 — Apache Tika 3.3.1
java·ai编程
HjhIron8 小时前
从Prompt到Context:大模型应用开发的范式转移
设计模式·aigc·ai编程
MacroZheng8 小时前
短短几天,暴涨2.8万Star!又一款编程神器开源!
java·人工智能·后端
SamDeepThinking9 小时前
函数式编程:用BiFunction消除多类型分支的代码重复
java·后端·面试
Flittly1 天前
【AgentScope Java新手村系列】(16)从RAG到多路检索
java·spring boot·spring
小兔崽子去哪了1 天前
Java 生成二维码解决方案
java·后端
人活一口气1 天前
从JVM调优到MCP协议:Java全栈技术体系深度总结与企业级架构实践
java·spring boot
NE_STOP1 天前
Vibe Coding -- 完整项目案例实操
java
荣码1 天前
GraphRAG:普通RAG只能回答"点"的问题,我踩了4个坑才搞懂
java·python