设计模式学习篇-AbstactFactory抽象工程模式

抽象工厂模式:提供一个创建一组或者相互依赖对象的接口,而无需指定他们的具体类。

本质:就是选择产品族的实现。客户端选择不同的工厂,就相当于在切换不同的产品族。

这个模式由一个工厂类层次和N个产品类层次组成。从每一个产品类层次中取出一个产品类形成产品类族,这个类族的实例为产品族。产品族中的产品之间有一种依赖关系。一个具体的工厂类负责创建产品族中的各个产品。

在抽象工厂模式中,抽象产品可能是一个或多个,从而构成一个或多个产品族。 在只有一个产品族的情况下,抽象工厂模式实际上退化到工厂方法模式。
在以下情况下,应当考虑使用抽象工厂模式。
  首先,一个系统应当不依赖于产品类实例被创立,组成,和表示的细节。这对于所有形态的工厂模式都是重要的。
  其次,这个系统的产品有多于一个的产品族。
  第三,同属于同一个产品族的产品是设计成在一起使用的。这一约束必须得在系统的设计中体现出来。
  最后,不同的产品以一系列的接口的面貌出现,从而使系统不依赖于接口实现的细节。
  其中第二丶第三个条件是我们选用抽象工厂模式而非其它形态的工厂模式的关键性条件。

简单示例图:

猜你喜欢

转载自mojianpo.iteye.com/blog/1131326