設計模式 工廠模式(五)

2021-08-01 19:33:57 字數 1107 閱讀 1266

軟體領域中的設計模式的重要性不言而喻。設計模式中運用了物件導向程式設計語言的重要特性:封裝、繼承、多型。雖然知道這些特性的定義但是並沒有做到真正的理解,這樣特性有什麼作用?用於什麼場合中等等問題,帶著疑問開始學習設計模式,主要參考《大話設計模式》和《設計模式:可復用物件導向軟體的基礎》兩本書。

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

工廠模式優點:修正了簡單工廠模式中不遵守開放-封閉原則。工廠方法模式把選擇判斷移到了客戶端去實現(這也是缺點),如果想新增新功能就不用修改原來的類,直接修改客戶端即可。

回顧:簡單工廠最大的優點在於工廠類中包含了必要的邏輯設計,根據客戶端的選擇條件動態例項化相關的類,對於客戶端來說,去除了與具體產品的依賴。

對於設計模式—簡單工廠(一)相同業務工廠模式的uml圖如下:

工廠模式一般uml圖如下:

//例:

#include #include using namespace std;

//例項基類,相當於product(為了方便,沒用抽象)

class leifeng

};//學雷鋒的大學生,相當於concreteproduct

class student : public leifeng

};//學雷鋒的志願者,相當於concreteproduct

class volenter : public leifeng

};//工場基類creator

class leifengfactory

};//工場具體類

class studentfactory : public leifengfactory

};class volente***ctory : public leifengfactory

};//客戶端

int main()

設計模式 五 工廠模式

工廠模式 定義乙個用於建立物件的介面,讓子類決定例項化哪乙個類。工廠方法使乙個類的例項化延遲到其子類,克服了簡單工廠違背開放 封閉原則的缺點,又保持了封裝物件建立過程的有點。開放 封閉原則 對於拓展是開放的,對於更改是封閉的 學生和志願者繼承雷鋒類,學生工廠和志願者工廠實現了雷鋒工廠介面,當需要改變...

設計模式(五)簡單工廠模式

使用頻率最高。概述 首先將需要建立的不同物件的 封裝到不同的類中,這些類成為具體產品類,而將它們的公共 進行抽象和提取後封裝在乙個抽象產品類中,每乙個具體產品類都是抽象產品類的子類 然後提供乙個工廠類用於建立各種產品,在工廠類中提供乙個建立產品的工廠方法,該方法可以根據所傳入的引數不同建立不同的具體...

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

在設計模式 三 工廠方法模式和設計模式 四 jdk中的那些工廠方法中介紹了工廠方法模式。本文將介紹另外一種工廠模式 抽象工廠模式。在介紹了簡單工廠模式和工廠方法模式之後,相信很多人對工廠模式 如果單獨提到工廠模式,即包括簡單工廠模式 工廠方法模式及本文即將介紹的抽象工廠模式 的思想都有了一定的理解。...