為了說明抽象工廠模式引入的背景,首先了解工廠方法模式(工廠模式)的類圖。在工廠方法模式中針對一組產品類構造了另一組工廠類,並且工廠類和產品類有相同的結構。假如現在有兩種以上具有相同結構的產品類,是否還可以使用工廠模式呢?
例如:有3 組產品類,鞋(shoe)、西服(suit)和領帶(tie),每個產品都分為男女兩類。那麼此時是否還可以使用工廠模式呢?
抽象工廠模式(abstract factory pattern)隸屬於設計模式中的建立型模式,用於產品族的構建。抽象工廠是所有形態的工廠模式中最為抽象和最具一般性的一種形態。抽象工廠是指當有多個抽象角色時使用的一種工廠模式。抽象工廠模式可以向客戶端提供乙個介面,使客戶端在不必指定產品的具體情況下,建立多個產品族中的產品物件。
抽象工廠模式設計類圖——兩個產品類的情況:
1. 抽象工廠模式中包含
例:設計乙個房屋銷售查詢系統,以便查詢不同型別的房屋的介紹、**和位址等。為簡單起見,只考慮兩種的房屋型別:別墅(house)和公寓(condo)。並且假設每種房屋型別都包含:豪華(super)、中等(medium)和經濟(economy)三種。
1. 類設計圖:
房屋銷售查詢系統——抽象工廠模式的應用:
不積跬步無以至千里,不積小流無以成江海
設計模式 工廠模式 抽象工廠模式
建立物件時不會對客戶暴露建立邏輯,並且通過使用乙個共同的介面來指向建立的物件。sept1 建立乙個公共介面,將要對外開放的方法在這裡定義。sept2 建立實現介面的類,用即實現對外開放的類的方法 sept3 建立工廠,提供乙個get方法,這個方法提供返回實現類的物件 建立選擇 sept4 使用,建立...
抽象工廠模式 常用設計模式 抽象工廠模式
提供乙個建立一系列相關或相互依賴物件的介面,而無需指定它們具體的類。在工廠方法模式中,我們的具體建立者每次使用都只能建立乙個同型別的物件,假如我們現在需要的是多個不同型別的物件,工廠方法就滿足不了需求了。這時我們可以把多個工廠方法組合到乙個類,這就是抽象工廠模式,它就是專門用來建立多個產品,也可以說...
抽象工廠模式 設計模式(九) 抽象工廠模式
提供乙個為建立一組相關或相互依賴物件的介面,且無須指定它們的具體類。它屬於建立型模式。在抽象工廠模式中,每個具體工廠都提供了多個用於建立多種不同型別具體物件的方法,這些不同型別的物件都存在乙個共同的屬性,構成乙個族。上篇文章設計模式 八 工廠方法模式說到工廠方法模式中只考慮某一類產品的生產,例如可樂...