c 之抽象工廠模式

2021-10-08 02:37:30 字數 1205 閱讀 1261

抽象工廠模式和工廠方法模式類似,因此也被稱為工廠家族模式,屬於建立型設計模式。

以下的例子說明:

市場上有神奇公司和希望公司,他們同時可以生產滑鼠和電池,但是兩個公司的滑鼠和電池型號卻是不一樣的。

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