工廠模式與抽象工廠的比較

2021-07-10 17:44:45 字數 619 閱讀 3251

工廠模式:定義乙個用於建立物件的介面,讓子類覺得例項化哪乙個類。factory method使乙個類的例項化延遲到了子類。

抽象工廠類:提供乙個建立一系列相關或相互依賴物件的介面,而無需指定它們具體的類。

二者的區別:

工廠模式:可以選擇例項化具體的哪乙個類,而且工廠類建立例項有很大的自由度,可以自由選擇組合和基礎已有的工        廠類和產品類。

抽象工廠:可以理解為工廠模式的乙個特例。將所有的介面都定義好,一次性將所有的產品都例項化。

二者的聯絡:

二者本質上都是將產品的類似例項化過程通過乙個類進行統一管理。抽象工廠是將所有需要的介面都定義好,有不同的子類去分別實現,而工廠類只提供了乙個建立介面,具體的例項化過程可以有子類自由選擇。

抽象工廠和工廠類也不是嚴格區分的,可以根據具體情況,將不需要實現的介面放到抽象工廠的介面基類中,而在子類的實現中可以採用工廠類的方法,通過組合、繼承的方法盡可能多的合理利用已存在的產品類。

簡單工廠,工廠, 抽象工廠模式的學習與比較

工廠模式就是把具體使用new操作符的細節包裝和隱藏起來。簡單工廠,由乙個具體類來實現工廠方法,由此工廠方法建立不同的物件,如下圖 工廠方法,由乙個抽象類或者介面宣告抽象工廠方法,多個具體類實現介面的抽象工廠方法,需要不同的物件,就在執行時建立不同的具體類 jdk中collection介面中的 ite...

工廠模式與抽象工廠模式

原始出處 作者資訊和本宣告。否則將追究法律責任。工廠模式與抽象工廠模式,相信同行不會陌生 在網上及相關書裡面也看過這方面的介紹 推薦這兩本書 steven john metsker s design patterns in c 和 gof s design pattern framework2.0 ...

工廠模式與抽象工廠模式

1 工廠模式 定義了一組建立物件的介面,但是由子類決定要例項化的類是哪乙個。工廠方法把類的例項化推遲到子類中。現在考慮有pizzastore有一些子類 加盟店 他們有可能對pizza的做法進行一些改良,即createpizza方法需要公升級。工廠方法的做法是,在基類中建立乙個形為abstract p...