定義:
抽象工廠模式是所有形態的工廠模式中最為抽象和最具一般性的一種形態,,當有多個抽象角色時,使用的一種工廠模式,它向客戶端提供乙個介面,使客戶端在不必指定產品的具體的情況下,建立多個產品族中的產品物件。
注意:注意產品族的概念:
是指位於不同產品等級結構中,功能相關聯的產品組成的家族。一般是位於不同的等級結構中的相同位置上。顯然,每乙個產品族中含有產品的數目,與產品等級結構的數目是相等的,形成乙個二維的座標系,水平座標是產品等級結構,縱座標是產品族。叫做相圖。
詳細參考:
示例:某人喜歡做什麼
示例中有兩個產品族,那我們首先得為這兩個產品族建立相應的工廠,
某人喜歡
public inte***ce familyperson
種什麼(以水果為例)
public inte***ce fruit
好了,以上就定義了「某人喜歡」與「種什麼」兩個工廠了,後面再來分別定義他們的實現類,首先定義「某人」的爺爺、奶奶實現類:
爺爺:public class grandepa implements familyperson
奶奶:public class grandema implements familyperson
再定義「種什麼」的蘋果、香蕉實現類:
蘋果:public void plant()
香蕉:public class banana implements fruit
好了,基礎的工廠都有了,現在需要乙個抽象工廠了,呵,就是同時引用多個基礎工廠的工廠,定下「愛好」工廠如下:
public inte***ce hobby
實現爺爺喜歡種香蕉:
public class grandepahobby implements hobby
實現奶奶喜歡種蘋果:
public class grandemahobby implements hobby
一切ok,來個呼叫例項:
public class test1
輸出:grandma likes
對抽象工廠模式的理解
抽象工廠模式是指在父子類間要發生一定的分離變化,當然這裡肯定是使用抽象類,抽象類作為父子類的乙個旋接擴充套件類。它是在乙個物件的另乙個維度上對物件進行擴充套件,你比如說人有黑人,白人,黃人 但是人還有男人 女人。但是在工廠的抽象類中定義的工廠方法盡量寫全,你比如說這裡的男人,女人,這裡在這個維度上就...
簡單理解抽象工廠模式
定義 抽象工廠模式是所有形態的工廠模式中最為抽象和最具一般性的一種形態,當有多個抽象角色時,使用的一種工廠模式,它向客戶端提供乙個介面,使客戶端在不必指定產品的具體的情況下,建立多個產品族中的產品物件。注意 注意產品族的概念 是指位於不同產品等級結構中,功能相關聯的產品組成的家族。一般是位於不同的等...
簡單工廠和抽象工廠模式的理解
簡單工廠方法,舉例 有乙個資料訪問層的工廠類daofactory 介面 裡面有各種資料庫的實現,例如 oracledaofactory和mysqldaofactory,然後可以根據 你在客戶端的輸入或者某個配置檔案的資訊 oracle 或者 mysql 去建立屬於自己需要的那個資料庫實現 daofa...