設計模式之工廠模式 c

2021-06-28 20:29:40 字數 2329 閱讀 6099

我們可以從麵包房購買到提拉公尺蘇、拿破崙,當他們新出一款抹茶蛋糕時,收銀台是不會被拆掉的,還是需要花錢購買

工廠模式就是為我們提供了建立物件的統一介面,新增的型別不會影響到介面

工廠模式包含三種:靜態工廠、多型工廠、抽象工廠,它屬於構造型設計模式

靜態工廠使用簡單,適合於變化較少的情況

namespace static_factory 

};static shape* createfactory(const

string& type) throw(badcreation);

virtual

void draw() = 0;

virtual

void erase() = 0;

virtual ~shape() {};

};class circle : public shape

friend

class shape;

public:

void draw()

void erase()

};class square : public shape

friend

class shape;

public:

void draw()

void erase()

};shape* shape::createfactory(const

string& type)

throw(shape::badcreation)

else

if ("square" == type)

else

}void staticfactorytest()

; vector

shapes;

try

} catch (shape::badcreation e)

for (int i = 0; i < shapes.size(); i++)

}}

2.多型工廠是靜態工廠的公升級版,是將factory抽象出來,可以更容易的增加構建的型別,但同時增加了開銷

}3.抽象工廠是工廠模式的乙個集合,是工廠模式與策略模式的結合,提高了構建物件的靈活度

c 設計模式 之 工廠模式之 工廠模式

1 uml類圖 實現和依賴關係 實現 sportfactory jeepfactory hatchbackfactory 實現 ifactory 介面 sportcar jeepcar hatchbackcar 實現 icar 介面 依賴 ifactory 依賴 icar sportfactory ...

c 設計模式之 工廠模式

使用工廠的客戶根本不知道具體的類.工廠的使用者建立乙個基類的物件.但由子類決定例項化哪個.這就允許我們服從子類的例項化,但是呼叫都不知道哪個物件被建立.來自源 wiki include class button class osxbutton public button class windowsb...

設計模式之 工廠模式 C

主要介紹抽象工廠模式,以及工廠方法和抽象工廠之間的區別 抽象工廠允許客戶使用抽象的介面來建立一組相關的產品,而無需知道實際產出的具體產品是什麼。這樣,客戶就從具體的產品中解耦出來。抽象工廠類圖如下所示 2 抽象工廠vs工廠方法 抽象工廠 提供乙個介面,用於建立相關或依賴物件的家族,而不需要明確指定具...