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)

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

相关推荐
逝水无殇2 小时前
C# 异常处理详解
开发语言·后端·c#
懒鸟一枚3 小时前
深入理解 Linux 内存、Swap 交换分区与分页机制的关系
java·linux·数据库
玖玥拾4 小时前
C# 语言进阶(十五)C# 游戏服务端 MySQL 数据库
服务器·开发语言·网络·数据库·mysql·c#
铅笔侠_小龙虾4 小时前
Rust 学习目录
开发语言·学习·rust
我命由我123454 小时前
执行 Gradle 指令报错,无法将“grep”项识别为 cmdlet、函数、脚本文件或可运行程序的名称
android·java·java-ee·android studio·android jetpack·android-studio·android runtime
考虑考虑4 小时前
Sentinel安装
java·后端·微服务
云泽8084 小时前
从零吃透 C++ 异常:抛出捕获、栈展开、异常重抛与编码规范详解
开发语言·c++·代码规范
灯澜忆梦5 小时前
GO---可见性规则
开发语言·golang
逝水无殇5 小时前
C# 文件的输入与输出详解
开发语言·数据库·后端·c#
这是个栗子6 小时前
前端开发中的常用工具函数(八)
开发语言·前端·javascript