前面說了兩種設計模式,簡單工廠模式和工廠模式。簡單工廠模式是定義乙個工廠類,工廠類根據呼叫時傳入的引數選擇建立哪乙個類的例項。工廠模式是為每個類建立乙個工廠,而這些工廠都實現了同乙個工廠,客戶端在呼叫的時候自己選擇某個類對應的工廠去建立某個類的例項。那抽象工廠又是什麼呢?抽象工廠在工廠模式的基礎上引入了「產品族」的概念。
**如下(滑鼠和鍵盤是乙個產品族):
先定義滑鼠介面和鍵盤介面:
package abstractfactorypattern;
/** * 滑鼠
*/public inte***ce mouse
package abstractfactorypattern;
/** * 鍵盤
*/public inte***ce keyboard
定義戴爾滑鼠和鍵盤:
package abstractfactorypattern;
/** * 戴爾滑鼠
*/public class dellmouse implements mouse
}package abstractfactorypattern;
/** * 戴爾鍵盤
*/public class dellkeyboard implements keyboard
}
定義惠普滑鼠和鍵盤:
package abstractfactorypattern;
/** * 惠普滑鼠
*/public class hpmouse implements mouse
}package abstractfactorypattern;
/** * 惠普鍵盤
*/public class hpkeyboard implements keyboard
}
定義抽象工廠:
package abstractfactorypattern;
public abstract class factory
定義惠普工廠和戴爾工廠:
package abstractfactorypattern;
/** * 惠普工廠
*/public class hpfactory extends factory
@override
public keyboard createkeyboard()
}package abstractfactorypattern;
/** * 戴爾工廠
*/public class dellfactory extends factory
@override
public keyboard createkeyboard()
}
執行測試類:
package abstractfactorypattern;
public class rundemp
}
執行結果:
參考文件:設計模式|菜鳥教程,《設計模式之禪》
設計模式(四) 抽象工廠模式
有時候我們需要乙個工廠可以提供多個產品物件,而不是單一的產品物件。為了更清晰地理解工廠方法模式,這裡先引入兩個概念 產品等級結構 即產品的繼承結構,比如乙個抽象類是電視機,其子類有海爾電視機 海信電視機 tcl電視機,則抽象電視機與具體品牌的電視機之間構成了乙個產品等級結構,抽象電視機是父類,而具體...
設計模式(四) 抽象工廠模式
前面介紹的工廠方法模式中考慮的是一類產品的生產,如畜牧場只養動物 電視機廠只生產電視機 計算機軟體學院只培養計算機軟體專業的學生等。同種類稱為同等級,也就是說 工廠方法模式只考慮生產同等級的產品,但是在現實生活中許多任務廠是綜合型的工廠,能生產多等級 種類 的產品,如農場裡既養動物又種植物,電器廠既...
設計模式之四 抽象工廠模式
抽象工廠模式 abstract factory pattern 是圍繞乙個超級工廠建立其他工廠。該超級工廠又稱為其他工廠的工廠。這種型別的設計模式屬於建立型模式,它提供了一種建立物件的最佳方式。在抽象工廠模式中,介面是負責建立乙個相關物件的工廠,不需要顯式指定它們的類。每個生成的工廠都能按照工廠模式...