創建型模式

在软件工程中，创建型模式是处理对象创建的设计模式，试图根据实际情况使用合适的方式创建对象，因為基本的对象创建方式可能会导致设计上的问题，或增加设计的复杂度。创建型模式的关注点是如何创建对象，其核心思想是要把对象的创建和使用相分离。

创建型模式由两个主导思想构成。一是将系统使用的具体类封装起来，二是隐藏这些具体类的实例创建的方式。 

创建型模式又分为对象创建型模式和类创建型模式。对象创建型模式处理对象的创建，类创建型模式处理类的创建。详细地说，对象创建型模式把对象创建的一部分推迟到另一个对象中，而类创建型模式将它对象的创建推迟到子类中。

定义 
创建型模式旨在将系统与它的对象创建、结合、表示的方式分离。这些设计模式在对象创建的类型、主体、方式、时间等方面提高了系统的灵活性。

使用 
现代软件工程更加依赖对象的组合，而不是类的继承，强调从硬编码的行为转变到定义一组基本行为来组合成复杂的行为。硬编码的行为不够灵活，因为如果想要改变设计的一部分，需要通过重写或者重新实现才能完成。另外，硬编码没有提高重用性，而且难以跟踪错误。由于这些原因，创建型模式比硬编码的行为更有用。创建型模式使设计变得更灵活，提供了不同的方式，从代码中移除了对需要实例化的具体类的引用。换句话说，这些模式增强了对象和类之间的独立性。

在以下情况中，可以考虑应用创建型模式：
 一个系统需要和它的对象和产品的创建相互独立。
 一组相关的对象被设计为一起使用。
 隐藏一个类库的具体实现，仅暴露它们的接口。
 创建独立复杂对象的不同表示。
 一个类希望它的子类实现它所创建的对象。
 类的实例化在运行时才指定。
 一个类只能有一个实例，而且这个实例能在任何时候访问到。
 实例应该能在不修改的情况下具有可扩展性。

举例 
创建型设计模式的一些例子如下：
 抽象工厂模式，提供一个创建相关或依赖对象的接口，而不指定对象的具体类。
 工厂方法模式，允许一个类的实例化推迟到子类中进行。
 生成器模式，将一个复杂对象的创建与它的表示分离，使同样的创建过程可以创建不同的表示。
 延迟初始化模式，将对象的创建，某个值的计算，或者其他代价较高的过程推迟到它第一次需要时进行。
 对象池模式，通过回收不再使用的对象，避免创建和销毁对象时代价高昂的获取和释放资源的过程。
 原型模式，使用原型实例指定要创建的对象类型，通过复制原型创建新的对象。
 单例模式，保证一个类只有一个实例，并且提供对这个实例的全局访问方式。

参考文献

参见 
 行为型模式
 結構型模式
 并发型模式

软件设计模式