Abstract Factory Pattern (抽象工厂模式)----------学习笔记四
最近比较忙,好一段时间学习设计模式,今天有空,再来学习。今天要看 Abstract Factory Pattern 抽象工厂模式
Abstract Factory Pattern (抽象工厂模式)
定义:Abstract Factory 又称 Kit 模式,提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。
类和对象的关系:
AbstractFactory (抽象工厂)
声明生成抽象产品的方法。
ConcreteFactory (具体工厂)
执行生成抽象产品的方法,生成一个具体的产品。
AbstractProduct (抽象产品)
为一种产品声明接口。
Product (具体产品)
定义具体工厂生成的具体产品的对象,实现产品接口。
Client (客户)
我们的应用程序,使用抽象产品和抽象工厂生成对象
优缺点
Abstract Factory 的主要优点是隔离了具体类的生成,使得客户不需要知道什么被创建。Abstract Factory 符合 GRASP 纯虚构 (PureFabrication)的模式,可以实现高内聚低偶合的设计目的。Abstract Factory 的最大好处是:当一个产品族中的多个对象被设计成一起工作时,它能够保证客户端始终只使用同一个产品族中的对象。
Abstract Factory 的缺点就是在添加新的产品对象时,难以扩展抽象工厂以便生产新种类的产品,要支持新种类的产品,就意味着要对该接口进行扩展。
应用情景:
1、系统需要屏蔽有关对象如何创建、如何组织和如何表示。
2、系统需要由关联的多个对象来构成。
3、有关联的多个对象需要一起应用并且它们的约束是强近的(不可分离)
4、你想提供一组对象而不显示它们的实现过程,只显示他们的接口。
示例代码:
Code
参考文献:莫勇腾.深入浅出设计模式[M].北京:清华大学出版社,2006
Abstract Factory Pattern (抽象工厂模式)
定义:Abstract Factory 又称 Kit 模式,提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。
类和对象的关系:
AbstractFactory (抽象工厂)
声明生成抽象产品的方法。
ConcreteFactory (具体工厂)
执行生成抽象产品的方法,生成一个具体的产品。
AbstractProduct (抽象产品)
为一种产品声明接口。
Product (具体产品)
定义具体工厂生成的具体产品的对象,实现产品接口。
Client (客户)
我们的应用程序,使用抽象产品和抽象工厂生成对象
优缺点
Abstract Factory 的主要优点是隔离了具体类的生成,使得客户不需要知道什么被创建。Abstract Factory 符合 GRASP 纯虚构 (PureFabrication)的模式,可以实现高内聚低偶合的设计目的。Abstract Factory 的最大好处是:当一个产品族中的多个对象被设计成一起工作时,它能够保证客户端始终只使用同一个产品族中的对象。
Abstract Factory 的缺点就是在添加新的产品对象时,难以扩展抽象工厂以便生产新种类的产品,要支持新种类的产品,就意味着要对该接口进行扩展。
应用情景:
1、系统需要屏蔽有关对象如何创建、如何组织和如何表示。
2、系统需要由关联的多个对象来构成。
3、有关联的多个对象需要一起应用并且它们的约束是强近的(不可分离)
4、你想提供一组对象而不显示它们的实现过程,只显示他们的接口。
示例代码:
参考文献:莫勇腾.深入浅出设计模式[M].北京:清华大学出版社,2006

* Abstract Factory Pattern (抽象工厂模式)



}
浙公网安备 33010602011771号