實現了創造者和呼叫者的分離
例項化物件用工廠方法代替new操作① 簡單工廠模式將選擇實現類、建立物件統一管理和控制,從而將呼叫者跟我們的實現類解耦
用來生產同一等級結構中的任意產品。(對於增加新的產品,需要修改已有**)② 工廠方法模式
用來生產同一等級結構中的固定產品。(支援增加任意產品)③ 抽象工廠模式
用來生產不同產品族的全部產品。(對於增加新的產品,無能為力,支援增加產品族)不用簡單工廠模式
//建立乙個手機介面
public
inte***ce
phone
class
mi implement phone
}class
huawei implement phone
}
在沒有使用簡單工廠模式的時候要使用phone介面的實現類只有通過new操作(或者反射)
public
void
main
(string[
] args)
在沒有使用簡單工廠模式的時候,我們要考慮介面類,還要考慮實現類,並且不能實現建立者和使用者分離
使用簡單工廠模式(******factory)
簡單工廠模式也叫靜態工廠模式,就是工廠類一般是使用靜態方法,接收的引數的不同(或呼叫的方法不同)來返回不同的物件例項
//根據引數建立需要的物件
public
class
******phonefactory
else
if(type.
equal
("huawei"))
else}}
//或者直接呼叫靜態方法獲取
public
class
******phonefactory
public
static phone huawei()
}
或許看上去簡單工廠模式的**更加繁瑣一些,但是簡單工廠模式獲取物件的時候不用考慮mi和huawei兩個類,只需要知道想要獲取phone介面的實現類呼叫工廠模式的方法即可,不但實現了建立者和使用者分離降低了**的耦合度,還避免了對類的關係的考慮,但是簡單工廠模式不修改**的話無法擴充套件(違反ocp原則),所以就要用到後面的工廠方法模式和抽象工廠模式了
我會在後面的部落格中一次展示工廠方法模式和抽象工廠模式的用法,簡單的工廠模式可以當做乙個很好的思維引導,讓大家在後面的工廠方法模式和抽象工廠模式中更加容易理解
簡單工廠模式,工廠模式,抽象工廠模式
三種模式看了一天,記錄下自己的理解 headfirst,比薩店為例 1,簡單工廠模式 乙個具體的工廠類 pizzafactory 乙個抽象的產品類pizza,可以派生出多個具體的產品類 客戶 pizzastore類 工廠類 pizzafactory類關聯產品類pizza,工廠生產出不同型別的pizz...
簡單工廠模式 工廠模式 抽象工廠模式
簡單工廠模式 簡單工廠模式的最大優點在於工廠類中包含了必要的邏輯判斷,根據客戶端的選擇條件動態例項化相關類,對於客戶端來說,去除了與具體產品的依賴。但增加功能時,需增加 case 邏輯判斷分支條件,修改了原有的類,我們不但對擴充套件開發了,對修改也開放了,違背了開放 封閉原則。工廠方法模式,定義了乙...
簡單工廠模式 工廠模式 抽象工廠模式
其實這個三個c 的設計模式已經學習很長時間了,今晚才想起來要寫這三個設計模式,為什麼要用c 中的設計模式呢?for example,你已經會開車了,正著開,倒著開,轉彎,這些都是開車基本的,但是你並沒有很高的車技,並不會炫酷。漂移,就好像c 中的設計模式一樣,在你學好c 的基礎上,嫻熟的應用出的新技...