创建型设计模式抽象了实例化过程。
他们帮助一个系统独立于如何创建、组合和表示它的那些对象。一个类创建型模式使用继承改变被实例化的类,而一个对象创建型模式将实例化委托给另一个对象。
这种模式有两个主旋律:第一,它们都将关于该系统使用哪些具体的类的信息封装起来。第二,他们隐藏了这些类的实例是如何被创建和放在一起的。整个系统关于这些对象所知道的是由抽象类所定义的接口。
Abstract Factory (抽象工厂)---对象创建型模型
1.意图
提供一个接口以创建一系列相关或相互依赖的对象,而无须指定他们具体的类。
2.适用性
一个系统要独立于它的产品的创建、组合和表示。
一个系统要有多个产品系列中的一个来配置。
要强调一系列相关的产品对象的设计以便进行联合使用。
提供一个产品类库,但只想显示他们的接口而不是实现。
3.结构
AbstractFactory——声明一个创建抽象产品对象的操作接口。
ConcreteFactory——实现创建具体产品对象的操作。
AbstractProduct——为一类产品对象声明一个接口。
ConcreteProduct(Product)——定义一个将被相应的具体工厂创建的产品对象。实现AbstractProduct接口。
Client——仅使用AbstractFactory和AbstractProduct类声明的接口。
4.协作
通常在运行时创建一个concreteFactory类的实例。这一具体的工厂创建具有特定实现的产品对象。为创建不同的产品对象,客户应该使用不同的具