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

🌳 组合模式(Composite Pattern)


✅ 定义

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

🧠 通俗理解:

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

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

🏠 外观模式(Facade Pattern)


✅ 定义

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

🧠 通俗理解:

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

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

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


✅ 定义

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

🧠 通俗理解:

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

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

🎁 装饰器模式(Decorator Pattern)

✅ 定义

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

🧠 通俗理解:

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

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

🌉 桥接模式(Bridge Pattern)

✅ 定义

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

🧠 通俗理解:

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

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

🔌 适配器模式(Adapter Pattern)

✅ 定义

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

🧠 通俗地说:

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

设计模式-08-创建型-建造者模式

🧱 建造者模式(Builder Pattern)

✅ 定义

建造者模式就是把「怎么一步步做一件复杂的东西」这件事,单独提出来管理

将一个复杂对象的构建过程与它的表示分离,使得同样的构建过程可以创建不同的表示。

🧠 换句话说:

  • 如果一个对象的创建过程非常复杂(多步骤、步骤有顺序)
  • 并且这个对象的不同版本只是在构建参数或步骤上有差异
  • 那么就适合使用建造者模式

它让你可以:

  • 同一个流程 → 做出不同风格的成品
  • 不用记步骤,构造过程被封装好了!
阅读更多

设计模式-08-创建型-建造者模式

🧱 建造者模式(Builder Pattern)

✅ 定义

建造者模式就是把「怎么一步步做一件复杂的东西」这件事,单独提出来管理

将一个复杂对象的构建过程与它的表示分离,使得同样的构建过程可以创建不同的表示。

🧠 换句话说:

  • 如果一个对象的创建过程非常复杂(多步骤、步骤有顺序)
  • 并且这个对象的不同版本只是在构建参数或步骤上有差异
  • 那么就适合使用建造者模式

它让你可以:

  • 同一个流程 → 做出不同风格的成品
  • 不用记步骤,构造过程被封装好了!
阅读更多

设计模式-09-创建型-原型模式

🧬 原型模式(Prototype Pattern)

✅ 定义

用原型实例指定要创建的对象类型,然后通过复制这个原型来创建新对象。

🧠 它的核心就是:

  • 不用 new,而是通过 clone() 快速复制现有对象。
  • 适用于构造成本高重复结构的对象
阅读更多