模式总结(一)——创建型模式(Creational Pattern)

1)工厂方法(Factory Method)

定义一个用于创建对象的接口,让子类决定实例化那一个类。Factory Method使一个类的实例化延迟到子类。

别名
虚构造器(Virtual Constructor)

结构


参与者

Product
——定义工厂方法所创建的对象的接口。
ConcreteProduct
——实现Product接口。
Creator
——声明工厂方法,该方法返回一个Product类型的对象。Product也可以定义一个工厂方法的缺省实现,它返回一个缺省的ConcreteProduct对象。
——可以调用工厂方法以创建一个Product对象。
ConcreteProduct
——重定义工厂方法以返回一个ConcreteProduct实例。

2)抽象工厂(Abstract Factory)

提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。

别名
Kit

结构

模式总结(一)——创建型模式(Creational Pattern)_第1张图片

参与者

AbstractFactory
——声明一个创建抽象产品对象的操作接口。
ConcreteFactory
——实现创建具体产品对象的操作。
AbstractProduct
——为一类产品对象声明一个接口。
ConcreteProduct
——定义一个将被相应的具体工厂创建的产品对象。
——实现AbstractProduct接口。
Client
——仅使用由AbstractFactory和AbstractProduct类声明的接口。

3)原型模式(Prototype Pattern

用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。

结构

模式总结(一)——创建型模式(Creational Pattern)_第2张图片


参与者
Prorotype

——声明一个克隆自身的接口。
ConcretePrototype
——实现一个克隆自身的操作。
Client
——让一个原型克隆自身从而创建一个新的对象。

4)建造者模式(Builder Pattern)

将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。

结构



参与者
Builder

——为创建一个Product对象的各个部件指定抽象接口。
ConcreteBuilder
——实现Builder的接口以构造和装配该产品的各个部件。
——定义并明确它所创建的表示。
Director
——构造一个使用Builder接口的对象。
Product
——表示被构造的复杂对象。 ConcreteBuilder创建该产品的内部表示并定义它的装配过程。
——包含定义组成部件的类,包括将这些部件装配成最终产品的接口。
模式总结(一)——创建型模式(Creational Pattern)_第3张图片

5)单例模式(Singleton)

保证一个类仅有一个实例,并提供一个访问它的全局访问点。

结构


参与者

Singleton
——定义一个Instance操作,允许客户访问它的唯一实例。Instance是一个类操作(即Smalltalk中的一个类方法和C++中的一个静态成员函数) 。
——可能负责创建它自己的唯一实例。


你可能感兴趣的:(模式总结(一)——创建型模式(Creational Pattern))