设计模式-03-概念
🚦 设计模式入门知识
📌 什么是设计模式?
设计模式是一套被总结出来、可复用的解决某类问题的通用“套路”。
你可以把它理解成“代码结构的兵法”,解决的是类之间如何组织、对象之间如何协作。
📂 模式分类(三大类 23 种)
| 类型 | 说明 | 常见模式举例 |
|---|---|---|
| ✅ 创建型 | 如何创建对象 | 单例、工厂、抽象工厂、建造者、原型 |
| ✅ 结构型 | 如何组合对象和类 | 适配器、桥接、装饰器、代理、外观、组合、享元 |
| ✅ 行为型 | 对象之间如何交互 | 策略、观察者、模板方法、状态、责任链、命令、备忘录、迭代器、中介者、解释器、访问者 |
🏗 创建型设计模式
✅ 定义:
创建型模式关注如何创建对象,将对象的创建过程从使用者中解耦出来,提升灵活性与复用性。
🧠 通俗来说:
你不是“自己动手 new 对象”,而是交给“别人帮你创建”,比如工厂、建造者、克隆器等。
🔨 常见模式:
- Singleton(单例):系统中只能有一个对象
- Simple Factory(简单工厂):一个工厂创建多种产品
- Factory Method(工厂方法):每个产品有独立工厂
- Abstract Factory(抽象工厂):创建多个产品族
- Builder(建造者):一步步构建复杂对象
- Prototype(原型):通过克隆已有对象创建新对象
🧱 结构型设计模式
✅ 定义:
结构型模式关注如何组合类或对象,形成更大的结构,解决“类之间如何协作”的问题。
🧠 通俗来说:
- 创建型模式关注“怎么造对象”
- 结构型模式关注“怎么组合对象,让它们配合更好用”
就像搭房子 ——
构造函数创建砖块,而结构型模式决定如何砌墙、装门、接水管。
🔧 常见模式:
- Adapter(适配器):转换接口,让原本不兼容的类协作
- Bridge(桥接):分离抽象与实现,独立扩展
- Decorator(装饰器):在不修改原类的前提下动态扩展功能
- Composite(组合):树形结构统一处理单个和组合对象
- Facade(外观):提供统一入口简化子系统访问
- Flyweight(享元):共享细粒度对象,减少内存开销
- Proxy(代理):控制对象的访问或添加功能(如日志、权限)
🔁 行为型设计模式
✅ 定义:
行为型模式关注对象之间的通信与协作方式,封装系统中对象之间的“行为”。
🧠 通俗来说:
- 创建型:造对象
- 结构型:组合对象
- 行为型:让对象“配合得当”一起工作
它让对象能高效协作、分工明确,比如谁负责通知、谁处理请求、谁保存历史等。
🎭 常见模式:
- Strategy(策略):封装不同算法,可随时切换
- Template Method(模板方法):定义流程骨架,子类实现细节
- Observer(观察者):一对多事件通知机制
- Chain of Responsibility(责任链):链式传递请求
- State(状态):对象行为随状态改变
- Command(命令):将请求封装成对象
- Visitor(访问者):为对象结构添加新操作
- Mediator(中介者):集中管理对象间交互
- Memento(备忘录):保存并恢复对象状态
- Interpreter(解释器):自定义语言的语法解释
- Iterator(迭代器):统一遍历集合的方式
设计模式-03-概念