抽象工廠模式和工廠方法模式類似,因此也被稱為工廠家族模式,屬於建立型設計模式。
以下的例子說明:
市場上有神奇公司和希望公司,他們同時可以生產滑鼠和電池,但是兩個公司的滑鼠和電池型號卻是不一樣的。
imouseproduct(抽象滑鼠產品)
ibatteryproduct(抽象電池產品)
magicbattery(神奇公司具體電池產品)
magicmouse(神奇公司具體滑鼠產品)
hopebattery(希望公司具體電池產品)
hopemouse(希望公司具體滑鼠產品)
ifactory(抽象工廠)
magicfactory(神奇公司工廠-生產神奇滑鼠和電池)
hopefactory(希望公司工廠-生產希望滑鼠和電池)
**:
#include using namespace std;
//抽象滑鼠
class imouseproduct;
//抽象電池
class ibatteryproduct;
//神奇公司電池
class magicbattery :public ibatteryproduct
};//神奇公司滑鼠
class magicmouse :public imouseproduct
};//希望公司電池
class hopebattery :public ibatteryproduct
};//希望公司滑鼠
class hopemouse :public imouseproduct
};//抽象工廠
class ifactory
;//神奇工廠 生產滑鼠和鍵盤
class magicfactory :public ifactory
virtual ibatteryproduct *createbatteryproduct() };
//希望工廠 生產滑鼠和鍵盤
class hopefactory :public ifactory
virtual ibatteryproduct *createbatteryproduct() };
//客戶端
int main()
return 0;
}
可以看到在客戶端中,只需要例項化對應的具體工廠物件給ifactory即可生產不同的產品,不需要改變其他的**。 工廠模式之抽象工廠
工廠模式之抽象工廠 是一種建立型設計模式,它能建立一系列相關的物件,而無需指定其具體類。類繼承自抽象工廠,即可生產指定物件。新增實體的時候無需修改已有 比如食物這個工廠,在現實世界中,它可以生產麵包 雞蛋 肉等,在魔法世界中,食物工廠可以生產魔法豆 會唱歌的火雞 hp口服液等,我們把食物比作是最大的...
C 設計模式之抽象工廠模式
抽象工廠模式 比工廠模式具有更高層次的抽象性,當要返回一系列相關類中的某一格,而對每個類都能根據需要返回不同的物件時候,這種模式就派上了用場。換言之,抽象工廠是乙個工廠物件。它能返回一系列相關類中的某一格,可以用簡單工廠決定哪乙個類。下面這個例子作為抽象工廠模式的例子,希望能跟大家一起分享一起進步。...
c 設計模式之 抽象工廠模式
概念 抽象工廠模式提供了乙個建立相似或相關相互依賴的物件,而不需要說明其具體的實現.類結構圖 圖來自 wiki 示例 include class button class winbutton public button class macbutton public button class scro...