设计模式-19-行为型-命令模式

🧾 命令模式(Command Pattern)


✅ 定义

请求封装成对象,从而让你可以参数化客户端,将请求排队、记录日志、支持撤销重做等操作。

🧠 通俗理解:

你去快餐店点单 🍔:

  • 你不是直接跟厨师说“做一个汉堡”
  • 而是让服务员写下一个“点单”
  • 这个“点单”就是命令对象
  • 你(客户端) → 服务员(Invoker) → 厨师(Receiver)

阅读更多

设计模式-18-行为型-责任链模式

🔗 责任链模式(Chain of Responsibility Pattern)


✅ 定义

将多个处理器组成一条链,每个处理器决定是否处理请求,如果不能处理则传给下一个。

🧠 通俗理解:

  • 就像办事流程,一层一层审批;
  • 谁能处理就谁处理,不用管是谁发起的
  • 如果处理不了,就 甩锅 给下一个人!

阅读更多

设计模式-16-结构型-享元模式

🪶 享元模式(Flyweight Pattern)


✅ 定义

运用共享技术来有效支持大量细粒度对象的复用。
把系统中重复出现的相同状态抽取出来共享,节省内存

🧠 通俗理解:

  • 有些对象之间大部分状态是一样的;
  • 我们不需要为每个对象都创建一份完整的副本;
  • 可以共享不变的部分,只把变化的部分分离出来单独处理;
  • 让“相似对象”飞起来 → 享元(Flyweight)
阅读更多

设计模式-15-结构型-组合模式

🌳 组合模式(Composite Pattern)


✅ 定义

将对象组合成树形结构以表示“部分-整体”的层次结构。
组合模式使得客户端可以统一处理单个对象和组合对象

🧠 通俗理解:

  • 有些对象是单个(叶子节点),有些对象是由多个组成的(容器节点);
  • 你希望对“单个” 和 “一组”使用相同的接口去操作;
  • 就像文件夹和文件都可以统一做“删除/重命名/显示”等操作一样!
阅读更多

设计模式-14-结构型-外观模式

🏠 外观模式(Facade Pattern)


✅ 定义

为子系统中的一组接口提供一个统一的高层接口,让外部调用更简单。
外观模式定义了一个“外观类”,对外只暴露简化接口,内部细节都隐藏。

🧠 通俗理解:

  • 系统内部结构太复杂,子系统太多;
  • 客户端不想知道那么多细节;
  • 那就定义一个“统一入口”类,让外部只管跟它打交道;
  • “让复杂看起来简单”!
阅读更多

设计模式-13-结构型-代理模式

🕵️‍♂️ 代理模式(Proxy Pattern)


✅ 定义

为某个对象提供一个代理对象,由代理对象控制对原对象的访问。
可用于:控制访问、增强功能、延迟加载、安全控制等。

🧠 通俗理解:

  • 你不想或不能直接访问一个对象;
  • 所以你找了个“中间人”代理来代替你操作;
  • 这个代理可以帮你加权限验证、日志记录、延迟处理等。
阅读更多

设计模式-12-结构型-装饰器模式

🎁 装饰器模式(Decorator Pattern)

✅ 定义

动态地为一个对象添加一些额外的职责,就像是“包了一层外壳”,而不影响原有类的结构。

🧠 通俗理解:

  • 原始功能不能改,但我想在不动原始代码的前提下添加功能
  • 那就用“装饰器”包住它,增强功能;
  • 比继承更灵活,可组合性更强
阅读更多

设计模式-11-结构型-桥接模式

🌉 桥接模式(Bridge Pattern)

✅ 定义

将抽象与实现解耦,使它们可以独立变化。

🧠 通俗理解:

  • 有时候一个类存在两个维度的变化(比如:支付类型 + 支付渠道、或者 图形类型 + 操作系统);
  • 如果用继承,会导致类爆炸式增长;
  • 那就用桥接模式,把“维度”拆成两个独立的层次结构,用组合关系连接起来,解耦!
阅读更多

设计模式-10-结构型-适配器模式

🔌 适配器模式(Adapter Pattern)

✅ 定义

将一个类的接口转换成客户端期望的另一个接口,使原本不兼容的类可以一起工作。

🧠 通俗地说:

  • 有两个东西接口对不上,但功能类似;
  • 用一个“适配器”在中间做转换,桥接它们;
  • 让“老接口”也能兼容“新系统”
阅读更多