概述
工廠方法模式是乙個建立型設計模式,通過定義乙個建立物件的介面,讓其子類決定例項化哪乙個工廠類,乙個工廠類建立乙個例項,工廠模式使其建立過程延遲到子類進行。
在工廠方法模式中,我們在建立物件時不會對客戶端暴露邏輯,並且通過使用乙個共同的介面來指向建立的物件。
優點
符合開閉原則
不需要記住具體類名,甚至連具體引數都不用記憶
實現了物件建立和使用分離
系統的可擴充套件性也就變得非常好,無需修改介面和原類
缺點
類的個數成倍增加,導致類越來越多,增加維護成本
增加了系統的抽象性和理解難度
使用場景
對於某個產品,呼叫者清楚地知道應該使用哪個具體工廠服務,例項化具體工廠,生產出具體的產品來
uml類圖
例項
//抽象車
class abstractcar;
//bmw
class bmw : public abstractcar
};//benz
class benz : public abstractcar
};//抽象工廠
class abstractfactory;
class bmwfactory : public abstractfactory
};class benzfactory : public abstractfactory
};void test01()
int main()
工廠方法模式 工廠方法模式
工廠方法模式是簡單工廠模式的公升級版,簡單工廠模式不符合設計模式的原則 即 單一職責,開閉原則 優點 職責明確,擴充套件方便 缺點 需要建立多個工廠 實現步驟 1.將工廠通用方法抽取介面 例如 ifactory 2.將產品抽取介面 例如 icar 3.實現各種產品 例如 baomacar,benti...
C 工廠模式 工廠方法
簡單工廠 工廠模式 簡單工廠,工廠方法,抽象工廠三種.工廠方法 力求簡潔 工廠即為生產東西的地方.在c 也有這種模式,充分利用了物件導向語言的三大特徵 多型,繼承 簡單工廠.工廠的功能就是生產,而生產些什麼呢?乙個工廠可以生產鞋子,生產衣服.它們所處的車間不一樣,所以需要兩個不同的類,這兩個類繼承工...
設計模式C 實現 工廠方法模式
工廠方法模式定義了乙個建立物件的介面,但由子類決定要例項化的類是哪乙個。工廠方法讓類把例項化推遲到子類。creator是乙個類,它實現了全部操縱產品的方法,但不實現工廠方法。creator的全部子類都必須實現工廠方法 factorymethod 以實際製造出產品。全部的產品必須實現product基類...