本文介绍了经典的 GOF 23 种设计模式,包含常见模式的定义、应用场景及代码示例。点击此处查看设计模式 UML 图表
什么是设计模式?
设计模式是软件开发中常见的解决方案模板,旨在提高代码可重用性、可读性及扩展性。GOF(GoF)由《设计模式:可复用面向对象软件的基础》一书提出,包含以下分类:
三大分类
创建型模式(Creational Patterns)
🏗️ 用于创建对象,如 单例模式、工厂方法模式、抽象工厂模式
示例:单例模式实现结构型模式(Structural Patterns)
🧱 用于处理对象与类之间的组合关系,如 适配器模式、代理模式、装饰器模式
示例:适配器模式应用行为型模式(Behavioral Patterns)
🕹️ 用于定义对象间通信方式,如 观察者模式、策略模式、命令模式
示例:策略模式实战
常见模式速览
模式名称 | 适用场景 | 优点 |
---|---|---|
工厂方法模式 | 对象创建逻辑需要扩展 | 遵循开闭原则 |
单例模式 | 需要全局唯一实例 | 控制资源访问 |
观察者模式 | 对象间事件驱动交互 | 解耦发布者与订阅者 |
装饰器模式 | 动态添加对象功能 | 不改变原有接口 |
命令模式 | 封装请求与执行 | 支持操作的撤销与重做 |
示例代码(Java)
// 单例模式示例
public class Singleton {
private static Singleton instance = new Singleton();
private Singleton() {}
public static Singleton getInstance() {
return instance;
}
}