Photo by Lorem Ipsum
714 words
4 minutes
设计模式系列(二):三大分类
设计模式系列
Posts in this series (7)AI 智能总结
设计模式 2 三大分类
23种经典GoF设计模式,按照职责划分为创建型、结构型、行为型三大类。不用死记模式,先分清分类定位,遇到业务场景才能快速匹配方案。
一、创建型模式:隔离对象创建逻辑
核心目标:将对象的创建与使用分离,屏蔽实例化细节,使用者无需关心new过程。
包含:工厂模式、单例模式、建造者模式、原型模式
典型场景:
- 单例:全局唯一实例(配置管理器、连接池)
- 工厂:统一封装对象创建,按需产出实例
- 建造者:复杂对象分步构建(参数繁多的实体)
- 原型:通过克隆已有对象创建新实例
示例(简易静态工厂)
interface Product {}class ProductA implements Product {}class ProductB implements Product {}
class ProductFactory { public static Product createProduct(String type) { if ("A".equals(type)) return new ProductA(); if ("B".equals(type)) return new ProductB(); throw new IllegalArgumentException(); }}二、结构型模式:实现类与对象组合
核心目标:通过组合、包装、适配等方式组装对象,灵活拓展功能,不改动原有代码。
包含:适配器、装饰器、代理、组合、外观模式
典型场景:
- 适配器:兼容两套不匹配接口(新旧系统对接)
- 装饰器:动态叠加对象功能
- 代理:控制对象访问(预处理、权限校验)
- 组合:统一处理单个对象与对象集合(树形结构)
- 外观:提供统一入口,简化复杂子系统调用
示例(外观模式极简演示)
// 多个复杂子系统class SubSystemA {}class SubSystemB {}
// 外观门面,对外只暴露简单方法class Facade { private SubSystemA a = new SubSystemA(); private SubSystemB b = new SubSystemB(); public void doWork() { // 封装内部调用逻辑 }}三、行为型模式:管控对象通信与职责分配
核心目标:规范对象之间交互方式、算法分发、职责流转。
包含:策略、观察者、模板方法、迭代器、责任链
典型场景:
- 策略:同一行为多种算法,运行时切换
- 观察者:事件订阅通知(消息推送、事件监听)
- 模板方法:固定流程框架,预留拓展点
- 迭代器:统一遍历集合,隐藏存储结构
- 责任链:请求沿着处理器依次传递,分层处理
示例(策略模式)
interface Strategy { void execute();}class StrategyOne implements Strategy{}class StrategyTwo implements Strategy{}
class Context { private Strategy strategy; public void setStrategy(Strategy strategy) { this.strategy = strategy; } public void run() { strategy.execute(); }}小结
- 创建型:解决「怎么造对象」
- 结构型:解决「怎么组装对象」
- 行为型:解决「对象怎么交互协作」
所有模式本质都是前文设计原则的落地实践。开发优先遵循设计原则,再按需选用模式,杜绝过度设计。