簡單工廠和工廠模式

2021-09-08 06:56:38 字數 1816 閱讀 4804

工廠模式】:

定義乙個用於建立物件的介面, 讓子類決定例項化哪乙個類。factory method使乙個類的例項化延遲到其子類。

適用性當乙個類不知道它所必須建立的物件的類的時候。

當乙個類希望由它的子類來指定它所建立的物件的時候。

當類將建立物件的職責委託給多個幫助子類中的某乙個,並且你希望將哪乙個幫助子類是**者這一資訊區域性化的時候。

以簡單計算器為例:

【簡單工廠實現】:

//【簡單工廠類】

class

operationfactory

return

oper;}}

//【運算類】

abstract

class

operation

class

operationadd

:operation

}class

operationsub

:operation

}class

operationmul

:operation

}class

operationdiv

:operation

}//【客戶端**】

class

}工廠模式實現

【工廠模式】:

using

system;

//【運算類】

abstract

class

operation

//運算基類;

class

operationadd

:operation 

//加法;

}class

operationsub

:operation 

//減法;

}class

operationmul

:operation  

//乘法;

}class

operationdiv

:operation  

//除法;

}//【factory介面】

inte***ce

ifactory

//【工廠類】

class

addfactory

:ifactory

//加法工廠類

}class

subfactory

:ifactory

//減法工廠類

}class

mulfactory

:ifactory

//乘法工廠類

}class

divfactory

:ifactory

//除法工廠類

}//【客戶端**】

class

}簡單工廠模式的最大優點在於

:工廠類中包含了必要的判斷邏輯,根據客戶端的選擇條件動態例項化相關的類,對於客戶端來說,去除了與具體產品的依賴。

工廠方法模式實現時,客戶端需要決定例項化哪乙個工廠來實現運算類,選擇判斷的問題還是存在,也就是說,工廠方法把簡單工廠的內部邏輯判斷移到了客戶端**來進行。你想要加功能,本來是改工廠類的,現在只改客戶端了。

工廠方法模式

克服了簡單工廠模式違背開放-封閉原則,又保持了封裝物件建立過程的優點。工廠方法模式是簡單工廠模式的進一步抽象和推廣。

簡單工廠模式和工廠模式

在對比兩種模式之前,首先需要學習 開放 封閉原則。在以前學習的過程中,聽說過很多次,編寫程式要遵循開閉原則。在做專案的過程中,因為需求的新增,經常會更新軟體。更新軟體,就要設計到修改 了。在物件導向的程式設計中,經常會寫類。如果因為新增需求,去修改已經完成的類。那麼他是不符合開閉原則的。新增需求,應...

簡單工廠和工廠模式

設計模式泛泛談 想要實現依賴倒轉規則,工廠方法不是唯一的技巧。工廠模式或者抽象工廠應該是重構時使用的。怎麼感覺有點 fp 中的高階函式的味道!簡單工廠和工廠模式的區別 區別其實不大。但是工廠模式能對修改閉合,以前的 保證不會出問題。不會出現新增的功能測試沒問題,已有的功能莫名其妙就掛掉的情況。所以真...

簡單工廠模式和工廠模式見解

簡單工廠模式是23種設計模式的一種,給人最直觀的感受就是我可以根據我輸入的資料建立不同的物件,但是這個物件必須實現相同的方法。那我們可不可以理解成就是乙個物件裡面我重寫了若干個方法,這個方法除了方法體不一樣其他都一樣,貌似這樣理解也沒錯,只是簡單工廠模式將其具體化了。public inte ce o...