抽象工廠,Abstract Factory

2021-06-22 15:25:17 字數 1112 閱讀 1058

抽象工廠的定義是:

提供乙個介面用於建立一系列相關或依賴的物件,而不需要指定具體的類。

其uml類圖的示例如下:

在這個模式中,參與者包括:

實現**:

public inte***ce abstractfactory

public class concretefactorya : abstractfactory

public abstractproductb createproductb() }

public class concretefactoryb : abstractfactory

public abstractproductb createproductb() }

public inte***ce abstractproducta

public class producta1 : abstractproducta

public class producta2 : abstractproducta

public inte***ce abstractproductb

public class productb1 : abstractproductb

public class productb2 : abstractproductb

public class client

}

使用場景:

建立一組相關的物件,或必須要一起使用的相依賴的物件。

系統應該配置成與多組產品一起工作。

物件的建立應該與使用分開。

具體的類應該與clients解耦。

注意:本質上,abstract factory使用工廠設計模式建立物件。但是也可以使用builder設計模式和prototype設計模式建立物件。取決於實現方式。

abstract factory可以用於facade模式的替代,來隱藏平台特有的類。

當abstract factory,builder,和prototype定義乙個工廠用於建立物件,我們應該考慮以下幾點:

抽象工廠模式 抽象工廠模式

抽象工廠模式其實是圍繞了乙個超級工廠建立其他的工廠 可參考工廠模式 這個超級工廠又可以想像成是其他工廠的工廠,這種設計模式是一種建立型模式。在抽象工廠模式中,介面是負責建立乙個相關物件的工廠,不需要顯式指出其類。每個生成的工廠都能按照工廠模式提供物件。意圖提供乙個建立一系列相關或相互依賴物件的介面,...

工廠模式 抽象工廠

在看抽象工廠前,我們需要引入兩個概念 1 產品等級結構 2 產品族 我們現在有這樣兩個產品型別 汽車 car 自行車 bike 有兩家公司 寶馬 bmw 奧迪 audi 每乙個廠家都能夠生產這兩種型別的產品 bmw介面 bmwcar,bmwbike audi介面 audicar,audibike 在...

工廠模式 抽象工廠

1 為了提高內聚和松耦合,我們經常會抽象出一些類的公共介面以形成抽象基類或者介面。這樣我們可以通過宣告乙個指向基類的指標來指向實際的子類實現,達到了多型的目的。這裡很容易出現的乙個問題是 若干個子類繼承自抽象基類,我們必須在每次要用到子類的地方就寫如 new 的 這裡帶來兩個問題 1 客戶程式設計師...