中華文化博大精深,首先體現為中國的文字。很多時候一字之差就能謬之千里。今天真的是領會到了:簡單工廠和工廠方法。從字面上看這兩個短語並沒有太大差別,可是在設計模式中,這兩字之差帶來的結果卻不是那麼微妙。
既然說到這兩個名稱的差別,我們就重點比較一下它們。先來看一下工廠方法模式。
一、工廠方法模式
工廠方法模式:定義乙個用於建立物件的介面,讓子類決定例項化哪乙個類,工廠方法使乙個類的例項化延遲到其子類。
二、形似的兩種模式的比較
1.看兩幅結構圖
·簡單工廠模式
·工廠方法模式
比較這兩個結構圖,我們會發現,每個結構圖右側的紅色邊框內有很大的區別,前者的簡單工廠沒有子類,只有一些邏輯判斷**;而後者卻又重新分出四個具體的工廠。到這裡,兩種模式的區別之一就出來了。那麼,工廠方法模式中的邏輯判斷**在**呢?答案是:客戶端。因為,在前一種模式中,要想修改新增功能就必須在工廠類中進行修改,而後者是修改客戶端。
2.通過上面的比較我繪製了乙個**:
從上面的**中總結如下:
(1)聯絡:
都有運算類、客戶端,其中運算類都有相應的子類。
(2)區別
最明顯:工廠方法模式需要有乙個工廠介面。
其次,工廠方法模式關於工廠類處是具體的工廠而不是乙個簡單的工廠類。
最後,新增功能時,前者改動的是工廠類(為工廠類新增相關功能的子類),後者改動的是客戶端(為相應功能增加判斷邏輯的**)。
用例項(計算器)說明就是:
(1)都有運算類(包括加減乘除四個子類)、都需要乙個客戶端
(2)工廠方法模式中的工廠類處,產生與運算類的子類相對應的四個具體的工廠:加法工廠、減法工廠、乘法工廠和除法工廠。
(3)**中要構建乙個工廠介面,然後四個具體工廠去實現這個介面。
這兩者的比較就先到這裡,該向下一站動身了!
設計模式之簡單工廠模式VS工廠模式
一 簡單工廠模式 1 定義 簡單工廠模式屬於建立型模式,又叫靜態工廠方法 static factory method 簡單工廠模式是由乙個工廠類物件決定建立 哪一種產品類的例項。2 實現和角色 1 實現 簡單工廠模式的實質是由乙個工廠類的物件根據實際傳入的引數,動態的決定建立哪一種產品類的例項。2 ...
設計模式(四) 工廠模式 簡單工廠
概述 簡單工廠其實不是乙個設計模式,反而像一種程式設計習慣。但由於經常被使用,所以人民經常把它放到工廠模式裡面。定義 簡單工廠模式是由乙個工廠物件決定建立出哪一種產品類的例項。實現 抽象類 產品 public abstract class product 具體的產品 public class con...
設計模式 工廠方法模式 VS簡單工廠模式
定義 簡單工廠模式 簡單工廠 工廠方法模式 定義乙個用於建立物件的介面,讓子類決定例項化哪乙個類。工廠方法是乙個類的例項化延遲到其子類。個人理解 簡單工廠 根據客戶端的選擇進行動態的例項化物件,也就是根據使用者的需求來例項化具體的物件。工廠方法 定義乙個用來建立物件的工廠介面,然後讓具體的工廠子類來...