設計模式 抽象工廠(十一)

2021-08-02 07:44:42 字數 1520 閱讀 4074

軟體領域中的設計模式的重要性不言而喻。設計模式中運用了物件導向程式設計語言的重要特性:封裝、繼承、多型。雖然知道這些特性的定義但是並沒有做到真正的理解,這樣特性有什麼作用?用於什麼場合中等等問題,帶著疑問開始學習設計模式,主要參考《大話設計模式》和《設計模式:可復用物件導向軟體的基礎》兩本書。  

工廠模式:定義乙個建立物件介面,讓子類決定例項化哪乙個類,在下圖中就是定義了乙個建立了物件的介面ifactory,讓它的兩個子類sqlserve***ctory、accessfactory去決定例項化sqlserveruser還是accessuser。

抽象工廠:定義了乙個建立一系列相關或相互依賴物件的介面,而無需指定它們的具體類。下圖中可知定義了乙個建立一系列相關或者相互依賴的介面ifactory,它的每個子類建立了一系列相關的或者相互依賴的物件,根據子類建立的物件去例項化某個類。

抽象工廠的結構圖如下:

抽象工廠模式 例:

#include #include #include using namespace std;

//使用者抽象介面

class iuser

;//部門抽象介面

class idepartment

;//access使用者

class caccessuser : public iuser

virtual void insertuser() };

//access部門

class caccessdepartment : public idepartment

virtual void insertdepartment() };

//sql使用者

class csqluser : public iuser

virtual void insertuser() };

//sql部門類

class csqldepartment : public idepartment

virtual void insertdepartment() };

//抽象工廠

class ifactory

;//access工廠

class accessfactory : public ifactory

virtual idepartment* createdepartment() };

//sql工廠

class sqlfactory : public ifactory

virtual idepartment* createdepartment() };

//客戶端:

int main()

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

抽象工廠模式 abstract factory 提供乙個建立一系列相關或者相互依賴物件的介面,而無需指定他們具體的類。優點 便於交換產品系統,由於具體工廠類,在乙個應用中只需要初始化的時候出現一次,這就使得改變乙個應用的具體工廠變得非常容易,只需要改變具體工廠即可以使用不同的產品配置。它讓具體的建立...

抽象工廠模式 常用設計模式 抽象工廠模式

提供乙個建立一系列相關或相互依賴物件的介面,而無需指定它們具體的類。在工廠方法模式中,我們的具體建立者每次使用都只能建立乙個同型別的物件,假如我們現在需要的是多個不同型別的物件,工廠方法就滿足不了需求了。這時我們可以把多個工廠方法組合到乙個類,這就是抽象工廠模式,它就是專門用來建立多個產品,也可以說...

抽象工廠模式 設計模式(九) 抽象工廠模式

提供乙個為建立一組相關或相互依賴物件的介面,且無須指定它們的具體類。它屬於建立型模式。在抽象工廠模式中,每個具體工廠都提供了多個用於建立多種不同型別具體物件的方法,這些不同型別的物件都存在乙個共同的屬性,構成乙個族。上篇文章設計模式 八 工廠方法模式說到工廠方法模式中只考慮某一類產品的生產,例如可樂...