DeathWhispers

组合模式 (Composite Pattern) 深度解析

🌳 组合模式 (Composite Pattern) 深度解析 1. 模式动机与定义 1.1. 模式动机:统一处理部分和整体 在许多场景中,我们需要处理树形结构或部分-整体 (Part-Whole) 的层次结构。例如,文件系统中的文件和文件夹、组织结构中的员工和部门、GUI 框架中的组件和容器。 问题:处理单个对象(叶子)和组合对象(树枝)的方式往往不同。如果客户端需要区分这两...

命令模式 (Command Pattern) 深度解析

命令模式 (Command Pattern) 深度解析 1. 模式动机与定义 1.1. 模式动机:解耦请求的发送者与接收者 在软件设计中,我们经常需要向某些对象发送请求,但并不清楚请求的接收者是谁,也不知道被请求的具体操作是哪个。我们只需要在运行时指定具体的请求接收者即可。 命令模式的引入,使得请求发送者与请求接收者消除彼此之间的耦合,让对象之间的调用关系更加灵活。发送请求的对象只需...

迭代器模式 (Iterator Pattern) 深度解析

🔁 迭代器模式 (Iterator Pattern) 深度解析 1. 模式动机与定义 1.1. 模式动机:分离遍历行为与集合结构 在面向对象编程中,集合对象(如数组、列表、树等)通常包含一组元素。如果客户端需要访问这些元素,通常需要了解集合的底层数据结构(例如是数组索引、链表节点还是树的遍历算法)。 问题:将遍历操作放在集合类中会导致: 暴露集合的内部表示...

空对象模式 (Null Object Pattern) 深度解析

📜 设计模式:空对象模式 (Null Object Pattern) 概念与动机 定义 空对象模式 (Null Object Pattern) 是一种行为型设计模式,它用一个**不执行任何操作(no-op)**的对象来代替程序中的 null 引用。 这个”空对象”实现了与实际对象相同的接口或继承相同的抽象类,从而可以在客户端代码中透明地使用。 动机 在传统的编程中,为了防止访问空...

拦截过滤器模式 (Intercepting Filter Pattern) 深度解析

📝 拦截过滤器模式 (Intercepting Filter Pattern) 深度解析 🚀 1. 模式目的与动机 意图 拦截过滤器模式: 用于对应用程序的请求或响应做一些预处理/后处理。定义过滤器,并在把请求传给实际目标应用程序之前或之后应用在请求上。 动机 在基于 Web 或分布式应用的架构中,客户端请求在到达核心处理逻辑之前,通常需要经过一系列的通用处理,如:身份验证...

抽象工厂模式 (Abstract Factory Pattern) 深度解析

🔩 抽象工厂模式 (Abstract Factory Pattern) 深度解析 1. 模式动机与定义 1.1. 模式动机:面对多个产品等级结构 在工厂方法模式中,一个具体工厂只负责生产一个产品等级结构中的一种具体产品。但有时候,一个工厂需要提供多个产品对象,这些产品位于不同的产品等级结构中,但它们之间是相关或相互依赖的。 为了更清晰地理解抽象工厂模式,我们先回顾两个核心概念: ...