在軟體系統中,經常面臨著「一系列相互依賴的物件」的建立工 作;同時,由於需求的變化,往往存在更多系列物件的建立工作。
如何應對這種變化?如何繞過常規的物件建立方法(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...