04-创建型模式
2026/7/11大约 3 分钟
顾名思义,创建型模式关注对象的创建过程,它将对象的创建和使用分离,在使用对象时无须知道对象的创建细节。使得相同的创建过程可以多次复用,且修改二者中的一个对另一个几乎不造成任何影响或很少的影响。
1、创建模式概述
软件系统在运行时,类将实例化成对象,并由这些对象来协作完成各项业务功能。创建型模式(Creational Pattern)对类的实例化过程进行了抽象,能够将软件模块中对象的创建和对象的使用分离。为了使软件的结构更加清晰,外界对于这些对象只需要知道它们共同的接口,而不用清楚其具体的实现细节,使整个系统的设计更加符合单一职责原则。
创建型模式在创建什么(What),由谁创建(Who),何时创建(When)等方面都为软件设计者提供了尽可能大的灵活性。创建型模式隐藏了类的实例的创建细节,通过隐藏对象如何被创建和组合在一起达到使整个系统独立的目的。创建型模式是最常用的一类设计模式,几乎在所有使用面向对象技术开发的软件系统中都能够找到它的存在。
2、创建型模式简介
创建型模式主要包括如下6种模式,其中简单工厂模式不是GoF23种模式的一员,下表对这6种设计模式进行了简单的说明。
| 模式名称 | 定义 | 简单说明 |
|---|---|---|
| 简单工厂模式 (Simple Factory) | 根据传人的参数即可返回所需的对象,而不需要知道具体类的类名 | 根据提供给它的数据,返回几个可能类中的一个类的实例。通常它返回的类都有一个公共的父类和公共的方法。简单工厂模式不属于GoF设计模式 |
| 工厂方法模式 (Factory Method) | 定义一个用于创建对象的接口,让子类决定将哪一个类实例化。工厂方法模式使一个类的实例化延迟到其子类 | 将某一类对象的创建过程封装在单独的类中,通过引入抽象层的方式来使得对象的创建和使用更为灵活 |
| 抽象工厂模式 (Abstract Factory) | 提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类 | 在一个类中可以创建多个不同类型的对象,这些对象所对应的类型都源于抽象层,使得系统具有极佳的扩展性和灵活性 |
| 建造者模式 (Builder) | 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示 | 一步一步构造一个由多个部分组成的复杂对象 |
| 原型模式 (Prototype) | 用原型实例指定创建对象的种类,并且通过复制这个原型来创建新的对象 | 通过复制已有对象创建出相似的其他对象 |
| 单例模式 (Singleton) | 保证一个类仅有一个实例,并提供一个访问它的全局访问点 | 控制系统中所创建的对象实例的个数 |