一些设计模式的记忆点

一些设计模式的记忆点

💡 原文中文,约2700字,阅读约需7分钟。
📝

内容提要

本文介绍了多种设计模式及其适用场景。创建型模式包括单例、工厂方法、抽象工厂、建造者和原型模式,主要解决对象创建问题。结构型模式如适配器、桥接、组合、装饰器、外观、享元和代理模式,关注类和对象的组织。行为型模式包括策略、模板方法、观察者、责任链、命令、状态、迭代器、中介者、备忘录、访问者和解释器模式,解决对象间的协作。

🎯

关键要点

  • 创建型模式解决对象创建问题,包括单例、工厂方法、抽象工厂、建造者和原型模式。
  • 单例模式适合需要唯一实例的场景,如配置管理器和线程池。
  • 工厂方法模式用于在不同条件下创建不同具体产品,关注创建等级结构中的某一产品。
  • 抽象工厂模式用于创建一整组相关或相互依赖的对象,如不同风格的UI组件。
  • 建造者模式适合对象构造过程复杂的场景,强调分步构建。
  • 原型模式适合创建对象成本高的场景,通过复制现有对象来提高效率。
  • 结构型模式关注类和对象的组织,包括适配器、桥接、组合、装饰器、外观、享元和代理模式。
  • 适配器模式解决接口不兼容的问题,使得不同类可以一起工作。
  • 桥接模式用于处理两个独立变化维度的扩展,避免类爆炸。
  • 组合模式适合树形结构的统一处理,叶子节点和容器节点统一对待。
  • 装饰器模式动态增强对象功能,而不修改原类。
  • 外观模式简化子系统的调用,提供统一入口。
  • 享元模式用于节省内存,适合大量细粒度对象的场景。
  • 代理模式控制对对象的访问,提供间接访问。
  • 行为型模式解决对象间的协作问题,包括策略、模板方法、观察者、责任链、命令、状态、迭代器、中介者、备忘录、访问者和解释器模式。
  • 策略模式允许多种算法或业务规则的互换。
  • 模板方法模式定义算法骨架,允许子类重写具体步骤。
  • 观察者模式用于状态变化时通知多个对象,适合事件监听和消息订阅。
  • 责任链模式允许请求沿链传递,解耦发送者和接收者。
  • 命令模式将请求封装成对象,支持撤销和重做。
  • 状态模式根据对象状态变化行为,消除大量if-else。
  • 迭代器模式提供统一遍历接口,隐藏内部结构。
  • 中介者模式集中协调对象间的交互,降低耦合。
  • 备忘录模式保存对象历史状态,以便恢复。
  • 访问者模式操作与数据结构分离,适合数据结构稳定但操作多变的场景。
  • 解释器模式用于定义语法规则并解释执行,适合简单语言或规则系统。

延伸问答

什么是单例模式,它适合什么场景?

单例模式确保一个类只有一个实例,适合需要唯一实例的场景,如配置管理器和线程池。

工厂方法模式和抽象工厂模式有什么区别?

工厂方法模式创建一种产品,而抽象工厂模式创建一族相关产品。

适配器模式的主要作用是什么?

适配器模式解决接口不兼容的问题,使得不同类可以一起工作。

观察者模式适合什么样的场景?

观察者模式适合一个对象状态变化时通知多个对象的场景,如事件监听和消息订阅。

什么是策略模式,它解决了什么问题?

策略模式允许多种算法或业务规则的互换,适合需要灵活选择算法的场景。

行为型模式中,责任链模式的核心思想是什么?

责任链模式允许请求沿链传递,解耦发送者和接收者,适合多个对象处理同一请求的场景。

➡️

继续阅读