C 實現工廠方法模式

2021-09-25 01:16:14 字數 948 閱讀 7238

概述

工廠方法模式是乙個建立型設計模式,通過定義乙個建立物件的介面,讓其子類決定例項化哪乙個工廠類,乙個工廠類建立乙個例項,工廠模式使其建立過程延遲到子類進行。

在工廠方法模式中,我們在建立物件時不會對客戶端暴露邏輯,並且通過使用乙個共同的介面來指向建立的物件。

優點

符合開閉原則

不需要記住具體類名,甚至連具體引數都不用記憶

實現了物件建立和使用分離

系統的可擴充套件性也就變得非常好,無需修改介面和原類

缺點

類的個數成倍增加,導致類越來越多,增加維護成本

增加了系統的抽象性和理解難度

使用場景

對於某個產品,呼叫者清楚地知道應該使用哪個具體工廠服務,例項化具體工廠,生產出具體的產品來

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基類...