「物件建立」模式 抽象工廠

2021-10-10 14:05:57 字數 2315 閱讀 6739

動機

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

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

模式定義

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

問題**

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

class

idbconnection

;class

idbconnectionfactory

;class

idbcommand

;class

idbcommandfactory

;class

idatareader

;class

idatareade***ctory

;//支援sql server

class

sqlconnection

:public idbconnection

;class

sqlconnectionfactory

:public idbconnectionfactory

;class

sqlcommand

:public idbcommand

;class

sqlcommandfactory

:public idbcommandfactory

;class

sqldatareader

:public idatareader

;class

sqldatareade***ctory

:public idatareade***ctory

;//支援oracle

class

oracleconnection

:public idbconnection

;class

oraclecommand

:public idbcommand

;class

oracledatareader

:public idatareader

;class

employeedao}}

;

:他和普通工廠的區別就是,如果你建立的物件之間有關聯性,你使用躲過工廠進行建立的時候,編譯器就會報錯,所以我們可以將他們放在乙個工廠裡面,從而達到關聯性的目的

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

class

idbconnection

;class

idbcommand

;class

idatareader

;class

idbfactory

;//支援sql server

class

sqlconnection

:public idbconnection

;class

sqlcommand

:public idbcommand

;class

sqldatareader

:public idatareader

;class

sqldbfactory

:public idbfactory

;//支援oracle

class

oracleconnection

:public idbconnection

;class

oraclecommand

:public idbcommand

;class

oracledatareader

:public idatareader

;class

employeedao}}

;

結構

要點總結

如果沒有應對「多系列物件構建」的需求變化,則沒有必要使用

abstract factory模式,這時候使用簡單的工廠完全可以。

系列物件」指的是在某一特定系列下的物件之間有相互依賴、

或作用的關係。不同系列的物件之間不能相互依賴。

abstract factory模式主要在於應對「新系列」的需求變動。其缺

點在於難以應對「新物件」的需求變動。

建立模式 抽象工廠模式

一 抽象工廠模式說明 抽象工廠模式更符合我們的日常生活和一般規律,所以,應用更加廣泛。下圖舉例說明了抽象工廠模式 抽象工廠模式設計 根據上圖的描述,抽象工廠模式可以設計如下 packagecom.solid.abstractfactory 抽象工廠模式 產品介面一 author solid publ...

」物件建立」模式 工廠模式

物件建立 模式 通過 物件建立 模式繞開new,來避免物件 new 過程中所導致的緊耦合 依賴具體類 從而支援物件建立的穩定,他是介面之後的第一步工作 典型模式 factory method abstract factory prototype builder 動機在軟體系統中,經常面臨著建立物件的...

設計模式 建立模式 抽象工廠 C 描述

second60 20180425 在我理解,抽象工廠其實是工廠模式的公升級版,不同之處是 工廠模式是對一類物件的建立,而抽象工廠是對多類物件的建立。工廠模版只是處理一類物件建立 抽象工廠能對多類物件的建立 圖中可以看出,相比公升級版權的工廠模式,此模式多了,不同的抽象產品,工廠即可以建立absta...