那些青春的岁月
产品族:是指位于不同产品等级结构中,功能相关联的产品组成的家族。比如AMD的CPU和ADM芯片的主板,组成一个家族。Intel的CPU和Intel芯片的主板,又组成一个家族。而这两个家族都来自于两个产品等级:CPU,主板。一个等级结构是由相同的结构的产品组成,示意图如下:
理解这个产品结构是理解抽象工厂模式的关键所在,从上图可以看出,抽象工厂模式的每个工厂创造出来的都是一族产品,而不是一个或者一组。组是可以随意组合的!其实工厂方法模式和抽象工厂模式就这点点差别。
【1】基本概念
抽象工厂模式是提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体类。
【2】简单分析
我们先看一下抽象工厂模式的UML结构图:
上图是 Abstract Factory 模式结构图,让我们可以进行更加方便的描述:
3.1 首先定义两个抽象的产品类:IUser.java 和 IDepartment.java。
IUser.java的源码:
OracleOfUser.java源码:
OracleFactory.java源码:
抽象工厂模式优点:
第一,易于交换产品系列,由于具体工厂类,例如IDBFactory factory = new OracleFactory(),在一个应用中只需要在初始化的时候出现一次,这就使得改变一个应用的具体工厂变得非常容易,它之需要改变具体工厂即可使用不同的产品配置。第二,它让具体的创建实例与客户端分离,客户端是通过它们的抽象接口操纵实例,产品的具体类名也被具体工厂的实现分离,不会出现在客户端代码中。http://blog.csdn.net/cjjky/article/details/7346893
Copyright @ abin Powered by: .Text and ASP.NET Theme by: .NET Monster