Abstract Factory 抽象工廠

2021-09-24 05:43:27 字數 827 閱讀 2811

在軟體系統中,經常面臨著「一系列相互依賴的物件」的建立工 作;同時,由於需求的變化,往往存在更多系列物件的建立工作。

如何應對這種變化?如何繞過常規的物件建立方法(new),提供一 種「封裝機制」來避免客戶程式和這種「多系列具體物件建立工作」 的緊耦合?

提供乙個介面,讓該介面負責建立一系列「相關或者相互依 賴的物件」,無需指定它們具體的類。

//資料庫訪問有關的基類

class idbconnection;

class idbcommand;

class idatareader;

//支援sql server

class sqlconnection: public idbconnection;

class sqlcommand: public idbcommand;

class sqldatareader: public idatareader;

//支援oracle

class oracleconnection: public idbconnection;

class oraclecommand: public idbcommand;

class oracledatareader: public idatareader;

class idbfactory;

class sqldbfactory:public idbfactory;

class employeedao}};

抽象工廠,Abstract Factory

抽象工廠的定義是 提供乙個介面用於建立一系列相關或依賴的物件,而不需要指定具體的類。其uml類圖的示例如下 在這個模式中,參與者包括 實現 public inte ce abstractfactory public class concretefactorya abstractfactory pub...

設計模式 AbstractFactory

回想工廠方法模式,大廳可能有多種風格,a和b的widget也可能是不同組別不同人進行開發。這種情況下乙個工廠類顯然對 結構,程式可維護性有影響。我們可以建立多個widgetfactory分別生成a,b類的widget。abstractfactory.h ifndef abstractfactory ...

抽象工廠(Abstract Factory)

抽象工廠 abstract factory 抽象工廠,提供乙個建立一系列相關或相互依賴物件的介面,而無需指定它們具體的類。別名 kit結構 參與者 abstractfactory 宣告乙個建立抽象產品物件的操作介面。concretefactory 實現建立具體產品物件的操作。abstractprod...