我們可以從麵包房購買到提拉公尺蘇、拿破崙,當他們新出一款抹茶蛋糕時,收銀台是不會被拆掉的,還是需要花錢購買
工廠模式就是為我們提供了建立物件的統一介面,新增的型別不會影響到介面
工廠模式包含三種:靜態工廠、多型工廠、抽象工廠,它屬於構造型設計模式
靜態工廠使用簡單,適合於變化較少的情況
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工廠方法 抽象工廠 提供乙個介面,用於建立相關或依賴物件的家族,而不需要明確指定具...