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

2021-10-10 13:36:47 字數 2260 閱讀 7207

物件建立」模式

通過「物件建立」模式繞開new,來避免物件(new)過程中所導致的緊耦合(依賴具體類),從而支援物件建立的穩定,他是介面之後的第一步工作

典型模式

•factory method

•abstract factory

•prototype

•builder

動機在軟體系統中,經常面臨著建立物件的工作,由於需求的變化,需要建立的物件的具體型別經常變化

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

模板定義

定義乙個用於建立物件的介面,讓子類決定例項化哪乙個類,factory method使得乙個類的例項化延遲(目的:解耦,手段:虛函式)到子類

問題**

class

isplitter};

class

binarysplitter

:public isplitter

;class

txtsplitter

:public isplitter

;class

picturesplitter

:public isplitter

;class

videosplitter

:public isplitter

;class

mainform

:public form

};

我們可以看上面的**,我們發現我們在建立的物件的時候,有了具體依賴的類,他是不斷變化的,我們這塊就違背了依賴倒置原則,我們依託乙個變化的類,極大的阻止了我們的擴充套件,所以我們很快就能想到多型,用多型指標來完成這個變化

//抽象類

class

isplitter};

//工廠基類

class

splitte***ctory};

//通過定義乙個工廠的類,讓他來」生產「我們需要的物件

/具體類

class

binarysplitter

:public isplitter

;class

txtsplitter

:public isplitter

;class

picturesplitter

:public isplitter

;class

videosplitter

:public isplitter

;//具體工廠

class

binarysplitte***ctory

:public splitte***ctory};

class

txtsplitte***ctory

:public splitte***ctory};

class

picturesplitte***ctory

:public splitte***ctory};

//我們通過多型來實現了不同的物件,將他們的依賴在乙個不變的抽象類上

class

videosplitte***ctory

:public splitte***ctory};

class

mainform

:public form

void

button1_click()

};

結構

要點總結

factory method模式用於隔離類物件的使用者具體型別之間的

耦合關係。面對乙個經常變化的具體型別,緊耦合關係(new)會導

致軟體的脆弱。

factory method模式通過物件導向的手法,將所要建立的具體對

象工作延遲到子類,從而實現一種擴充套件(而非更改)的策略,較好

地解決了這種緊耦合關係。

factory method模式解決「單個物件」的需求變化。缺點在於要

求建立方法/引數相同。

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

動機 在軟體系統中,經常面臨著 一系列相互依賴的物件 的建立工作,同時由於需求的變化,往往存在更多系列物件的建立物件 如何應對這種變化,如何繞過常規的物件建立方法 new 提供一種 封裝機制 來避免客戶程式和這種 多系列具體物件建立工作 的緊耦合 模式定義 提供乙個介面,讓該介面負責建立一系列 相關...

建立模式 抽象工廠模式

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

「物件建立」模式

定義 通過 物件建立 模式繞開new,來避免物件建立 new 過程中所導致的緊耦合 依賴具體類 從而支援物件的穩定。它是介面抽象之後的第一步工作。在軟體系統中,經常面臨著建立物件的工作 由於需求的變化,需要建立的物件的具體型別經常變化。如何應對這種變化?如何繞過常規的物件建立方法 new 提供一種 ...