設計模式之工廠模式(五)

2021-09-19 23:01:45 字數 1055 閱讀 4959

前面幾篇,我們已經把簡單工廠、工廠方法模式以及抽象工廠模式一一進行了拆解,一步步讓我們學會了這幾個工廠模式,哦,對了,簡單工廠並不算真正意義上的工廠。

我們通過吃披薩的啟發,對建立披薩進行了改造;又發展了遠景,對披薩加盟有了濃厚的興趣,並開了很多加盟店;又對材料進行了嚴格把控,才有了現在的規模。工廠模式,就這樣一層層地展現在我們面前。

首先,來看下上次遺留的抽象工廠模式的問題。抽象工廠允許客戶使用抽象的介面來建立一組相關的產品,而不需要知道(或關心)實際產出的具體產品是什麼。這樣一來,客戶就從具體的產品中被解耦。讓我們看看類圖來了解其中的關係。

這是一張相當複雜的類圖:讓我們從pizzastore的觀點來看一看它

工廠方法是不是潛伏在抽象工廠裡面?

我們注意到,抽象工廠的每個方法實際上看起來都像工廠方法。每個方法能被宣告稱抽象,而子類的方法覆蓋這些方法來建立某些物件。

所以,抽象工廠方法經常以工廠方法的方式實現,這很有道理,對吧?抽象工廠的任務是定乙個負責建立一組產品的介面。這個介面內的每個方法負責建立乙個具體產品,同時我們利用實現抽象工廠的子類來提供這些具體的做法。所以,在抽象工廠中利用工廠方法實現生產方法是相當自然的做法。

比較工廠方法和抽象工廠

設計箱內的工具

還是按照之前的套路,總結下工具箱內新增的工具吧

結尾愛生活,愛學習,愛感悟,愛挨踢

Java設計模式 五 之 工廠模式

原始碼均以jdk1.8作為參考 1.定義 定義乙個用於建立物件的介面,讓子類決定例項化哪乙個類。工廠方法使乙個類的例項化延遲到子類。2.解析 可能乍一看factory設計模式的定義有點暈,但是細想想factory的字面含義,其實也是很好理解的,所謂工廠,就是按照指定的需求生產出一些產品,factor...

設計模式之抽象工廠模式(五)

來到了最後的工廠模式,抽象工廠模式。這個工廠模式應該是工廠模式的終極形態了,顧名思義抽象,它真的挺抽象的,但是如果你可以理解工廠方法模式的話,這個模式應該也不會太難。它與工廠方法模式的區別在於抽象工廠介面不再只生產乙個抽象產品,而是一堆抽象產品,抽象產品介面也不止乙個,而是有很多個。這個設計模式曾經...

五 JavaScript設計模式之工廠模式

一 工廠模式概念 工廠模式定義乙個用於建立物件的介面,這個介面由子類決定例項化哪乙個類。該模式使乙個類的例項化延遲到了子類。而子類可以重寫介面方法以便建立的時候指定自己的物件型別 抽象工廠 這個模式十分有用,尤其是建立物件的流程賦值的時候,比如依賴於很多設定檔案等。並且,你會經常在程式裡看到工廠方法...