设计模式分类:创建型、结构型与行为型
设计模式是面向对象设计中反复出现的问题的解决方案,根据其解决问题的侧重点,可分为三大类:创建型模式、结构型模式和行为型模式。每类模式聚焦于软件设计的不同层面,共同助力构建灵活、可复用的系统。
创建型模式(Creational Patterns)
核心目标
抽象对象的实例化过程,封装对象创建的细节,使系统在不依赖具体类的情况下创建对象,从而提高灵活性和可扩展性。
主要解决问题
- 如何隐藏对象创建的复杂性(如初始化步骤、依赖管理)?
- 如何确保对象创建符合特定约束(如单例、池化)?
- 如何使系统独立于对象的具体类型,便于替换或扩展?
包含模式(5 种)
- 工厂方法模式(Factory Method)
- 定义一个创建对象的接口,由子类决定实例化哪个类。
- 类模式(通过继承实现),典型应用:
Java Collection的iterator()方法。
- 抽象工厂模式(Abstract Factory)
- 提供一个接口,用于创建一系列相关或相互依赖的对象,而无需指定具体类。
- 示例:不同操作系统的 UI 组件工厂(Windows 按钮与 Mac 按钮)。
- 单例模式(Singleton)
- 确保一个类仅有一个实例,并提供全局访问点。
- 应用:配置管理器、线程池等需唯一实例的场景。
- 建造者模式(Builder)
- 将复杂对象的构建过程与表示分离,使同一构建过程可创建不同表示。
- 示例:
StringBuilder(分步构建字符串)、复杂对象的配置器。
- 原型模式(Prototype)
- 通过复制现有对象(原型)来创建新对象,避免重复初始化。
- 应用:大对象的高效复制(如克隆数据库连接对象)。
结构型模式(Structural Patterns)
核心目标
描述类与对象的组合方式,通过灵活的组合实现更复杂的功能结构,同时保持结构的稳定性和可扩展性。