设计模式-03-概念

🚦 设计模式入门知识

📌 什么是设计模式?

设计模式是一套被总结出来、可复用的解决某类问题的通用“套路”。

你可以把它理解成“代码结构的兵法”,解决的是类之间如何组织、对象之间如何协作

📂 模式分类(三大类 23 种)

类型 说明 常见模式举例
✅ 创建型 如何创建对象 单例、工厂、抽象工厂、建造者、原型
✅ 结构型 如何组合对象和类 适配器、桥接、装饰器、代理、外观、组合、享元
✅ 行为型 对象之间如何交互 责任链、命令、观察者、策略、状态、模板方法、迭代器、中介者、备忘录、解释器、访问者

🏗 创建型设计模式

✅ 定义:

创建型模式关注如何创建对象,将对象的创建过程从使用者中解耦出来,提升灵活性与复用性。

🧠 通俗来说:

你不是“自己动手 new 对象”,而是交给“别人帮你创建”,比如工厂、建造者、克隆器等。

🔨 常见模式:

  • Singleton(单例):系统中只能有一个对象
  • Simple Factory(简单工厂):一个工厂创建多种产品
  • Factory Method(工厂方法):每个产品有独立工厂
  • Abstract Factory(抽象工厂):创建多个产品族
  • Builder(建造者):一步步构建复杂对象
  • Prototype(原型):通过克隆已有对象创建新对象

🧱 结构型设计模式

✅ 定义:

结构型模式关注如何组合类或对象,形成更大的结构,解决“类之间如何协作”的问题。

🧠 通俗来说:

  • 创建型模式关注“怎么造对象
  • 结构型模式关注“怎么组合对象,让它们配合更好用

就像搭房子 ——
构造函数创建砖块,而结构型模式决定如何砌墙、装门、接水管。

🔧 常见模式:

  • Adapter(适配器):转换接口,让原本不兼容的类协作
  • Bridge(桥接):分离抽象与实现,独立扩展
  • Decorator(装饰器):在不修改原类的前提下动态扩展功能
  • Proxy(代理):控制对象的访问或添加功能(如日志、权限)
  • Facade(外观):提供统一入口简化子系统访问
  • Composite(组合):树形结构统一处理单个和组合对象
  • Flyweight(享元):共享细粒度对象,减少内存开销

🔁 行为型设计模式

✅ 定义:

行为型模式关注对象之间的通信与协作方式,封装系统中对象之间的“行为”。

🧠 通俗来说:

  • 创建型:造对象
  • 结构型:组合对象
  • 行为型:让对象“配合得当”一起工作

它让对象能高效协作、分工明确,比如谁负责通知、谁处理请求、谁保存历史等。

🔁 常见分组记忆法

  • 职责转发类
    • 责任链、命令、中介者
  • 算法封装与变化类
    • 策略、模板方法、状态、访问者
  • 对象行为追踪类
    • 观察者、备忘录
  • 结构访问类
    • 迭代器、解释器

🎭 常见模式(推荐学习顺序):

  1. Chain of Responsibility(责任链):链式传递请求
  2. Command(命令):将请求封装成对象
  3. Observer(观察者):一对多事件通知机制
  4. Strategy(策略):封装不同算法,可随时切换
  5. State(状态):对象行为随状态改变
  6. Template Method(模板方法):定义流程骨架,子类实现细节
  7. Iterator(迭代器):统一遍历集合的方式
  8. Mediator(中介者):集中管理对象间交互
  9. Memento(备忘录):保存并恢复对象状态
  10. Interpreter(解释器):自定义语言的语法解释
  11. Visitor(访问者):为对象结构添加新操作
作者

bufx

发布于

2025-02-20

更新于

2025-07-24

许可协议