前面我們介紹了簡單工廠,知道了可以通過簡單工廠來獲得想要的單個產品。那如果我們想要獲的是一系列或者相互依賴物件的物件呢?這個時候就需要乙個功能更加強大的工廠——抽象工廠。
還是通過例子來做說明,這個例子是乙個客戶請求工程師幫忙組裝電腦。同時為了突出學習重點,這個電腦只有cpu 和 主機板。主要是用來學習設計模式嘛!這個工程師有兩套裝機方案供客戶選擇。
由於**全部貼出來,可能較長。為了行文緊湊,便只將與本文學習相關的**貼出來,詳細**見 設計模式**請戳這裡
1. 定義介面
public
inte***ce abstractfactory
public
inte***ce cpuapi
public
inte***ce mainboardapi
2. 根據介面分別實現兩種型號的cpu和主機板,以及供客戶選擇的兩套方案
public
class
amdcpu
implements
cpuapi
@override
public
void
calculate()
}public
class
intelcpu
implements
cpuapi
@override
public
void
calculate()
}public
class
gamainboard
implements
mainboardapi
@override
public
void
installcpu()
}public
class
msimainboard
implements
mainboardapi
@override
public
void
installcpu()
}public
class
schema1
implements
abstractfactory
@override
public mainboardapi createmainboard()
}public
class
schema2
implements
abstractfactory
@override
public mainboardapi createmainboard()
}
3. 實現裝機工程師
public
class computerengineer
public
void
preparehardwares(abstractfactory schema)
}
3. 客戶端呼叫
public
class client
}
簡單工廠生產單個元件,而抽象工廠生成一系列元件,通常元件具有一定的聯絡。 抽象工廠模式的實踐
抽象工廠模式,簡單地說,由幾個類構成 乙個工廠類,乙個或多個抽象類作為基類,多個具體類作為子類,還有乙個介面。工廠類有乙個工廠方法,它接收乙個引數,例如要建立物件的資訊 返回乙個實現了那個介面的物件。該物件的執行時型別則是上述子類中的乙個。這些子類中的每乙個都繼承於那些基類中的乙個,那些基類再分別向...
抽象工廠模式 抽象工廠模式
抽象工廠模式其實是圍繞了乙個超級工廠建立其他的工廠 可參考工廠模式 這個超級工廠又可以想像成是其他工廠的工廠,這種設計模式是一種建立型模式。在抽象工廠模式中,介面是負責建立乙個相關物件的工廠,不需要顯式指出其類。每個生成的工廠都能按照工廠模式提供物件。意圖提供乙個建立一系列相關或相互依賴物件的介面,...
工廠模式 抽象工廠
在看抽象工廠前,我們需要引入兩個概念 1 產品等級結構 2 產品族 我們現在有這樣兩個產品型別 汽車 car 自行車 bike 有兩家公司 寶馬 bmw 奧迪 audi 每乙個廠家都能夠生產這兩種型別的產品 bmw介面 bmwcar,bmwbike audi介面 audicar,audibike 在...