c++設計模式之簡單工廠模式
部落格分類: 設計模式
設計模式cc++c#uml
專門定義乙個類來負責建立其他類的例項,被建立的例項通常都具有共同的父類。它又稱為靜態工廠方法模式,屬於類的建立型模式。
簡單工廠模式的uml類圖
簡單工廠模式的實質是由乙個工廠類根據傳入的引數,動態決定應該建立哪乙個產品類(這些產品類繼承自乙個父類或介面)的例項。
該模式中包含的角色及其職責
工廠(creator)角色
簡單工廠模式的核心,它負責實現建立所有例項的內部邏輯。工廠類可以被外界直接呼叫,建立所需的產品物件。
抽象(product)角色
簡單工廠模式所建立的所有物件的父類,它負責描述所有例項所共有的公共介面。
具體產品(concrete product)角色
是簡單工廠模式的建立目標,所有建立的物件都是充當這個角色的某個具體類的例項。
一般來講它是抽象產品類的子類,實現了抽象產品類中定義的所有介面方法。
簡單工廠模式的特點:
簡單工廠模式的建立目標,所有建立的物件都是充當這個角色的某個具體類的例項。
在這個模式中,工廠類是整個模式的關鍵所在。它包含必要的判斷邏輯,能夠根據外界給定的資訊,決定究竟應該建立哪個具體類的物件。使用者在使用時可以直接根據工廠類去建立所需的例項,而無需了解這些物件是如何建立以及如何組織的。有利於整個軟體體系結構的優化。
不難發現,簡單工廠模式的缺點也正體現在其工廠類上,由於工廠類集中了所有例項的建立邏輯,所以「高內聚」方面做的並不好。另外,當系統中的具體產品類不斷增多時,可能會出現要求工廠類也要做相應的修改,擴充套件性並不很好。
例項**如下:
cpp** 收藏**
#include
using namespace std;
//定義抽象類
class canimal
; //定義具體類
class cfish : public canimal
C 工廠模式 簡單工廠
簡單工廠 工廠模式 簡單工廠,工廠方法,抽象工廠三種.簡單工廠 力求簡潔 工廠即為生產東西的地方.在c 也有這種模式,充分利用了物件導向語言的三大特徵 多型,繼承 簡單工廠.工廠的功能就是生產,而生產些什麼呢?乙個工廠可以生產鞋子,生產衣服.它們所處的車間不一樣,所以需要兩個不同的類,這兩個類繼承工...
C 簡單抽象工廠
using system using system.collections.generic using system.text 抽象工廠 public abstract class abstractfactory return factory 通過抽象產品,建立實際產品 public abstrac...
c 簡單工廠模式
主要用於物件建立,新新增類時,不會影響以前的系統 核心思想是用乙個工廠來根據輸入條件產生不同的類,然後根據不同類的的virtual函式得到不同的結果。優點 適用於不同情況建立不同的類。缺點 客戶端必須要知道基類和工廠類,耦合性差。基類 class coperation 加法 class addope...