那些青春的歲月
產品族:是指位于不同產品等級結構中,功能相關聯的產品組成的家族。比如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