設計模式之抽象工廠模式 C 實現

2021-08-21 06:53:37 字數 1348 閱讀 3535

前面兩篇文章分別介紹了,簡單工廠模式以及工廠方法模式。接下來我將介紹一下,抽象工廠模式。抽象工廠模式主要用於具有複雜層級和分類的設計中。比如,分別把網絡卡驅動和音效卡驅動當作一種product。那windows和linux以及mac都需要這兩種product。此類設計使用抽象工廠模式最合適不過。抽象工廠模式比較易於交換產品系列。

從uml圖中可以看出,想要某xie li

工廠類設計

//factory

#pragma once

#include "product.h"

class abstractfactory

;class factory1 : public abstractfactory

; abstractproductb* createproductb()

};class factory2 : public abstractproductb

abstractproductb* createproductb()

};

產品類設計

//product

#pragma once

class abstractproducta

; virtual void operation()=0;

};class producta1:public abstractproducta

; void operation()

;};class producta2:public abstractproducta

; void operation(){};

};class abstractproductb

; virtual void operation() = 0;

};class productb1:public abstractproductb

; void operation(){};

};class productb2:public abstractproductb

; void operation(){};

};

主函式中使用

#include "factory.h"

int main(int argc, char* argv)

以上便是抽象工廠模式的整個介紹。當然這種方法仍有弊端,比如要增加某個產品,那麼最少需要改變三個類。這樣會加大工作量,所以具體設計過程中仍然需要具體考慮,將其設計與其他設計模式融合,設計出最符合自己需求的模式。

設計模式之抽象工廠模式 C 實現

更多設計模式參看 設計模式之模式概述 模式彙總 c 實現 優點 缺點 模式結構 示例 工廠方法模式中考慮的是一類產品的生產,如畜牧場只養動物 電視機廠只生產電視機 計算機軟體學院只培養計算機軟體專業的學生等。乙個工廠只生產一類產品,可能會導致系統中存在大量的工廠類,勢必會增加系統的開銷。此時,我們可...

C 實現設計模式 抽象工廠模式

感覺抽象工廠模式有點像你去買電腦的時候,先告訴賣電腦的你要買聯想的,然後再告訴賣電腦的你要個滑鼠,最後你喜提聯想的滑鼠回家了。這裡也感謝菜鳥教程,提供免費的學習資料。優點 當乙個產品族中的多個物件被設計成一起工作時,它能保證客戶端始終只使用同乙個產品族中的物件。缺點 產品族擴充套件非常困難,要增加乙...

C 設計模式之抽象工廠模式

抽象工廠模式 比工廠模式具有更高層次的抽象性,當要返回一系列相關類中的某一格,而對每個類都能根據需要返回不同的物件時候,這種模式就派上了用場。換言之,抽象工廠是乙個工廠物件。它能返回一系列相關類中的某一格,可以用簡單工廠決定哪乙個類。下面這個例子作為抽象工廠模式的例子,希望能跟大家一起分享一起進步。...