工廠方法模式(Factory Method

2021-05-25 01:52:45 字數 2409 閱讀 1859

耦合關係:

動機(motivation):

在軟體系統中,由於需求的變化,"這個物件的具體實現"經常面臨著劇烈的變化,但它卻有比較穩定的介面。

如何應對這種變化呢?提供一種封裝機制來隔離出"這個易變物件"的變化,從而保持系統中"其它依賴的物件"不隨需求的變化而變化。

意圖(intent):

定義乙個使用者建立物件的介面,讓子類決定例項哪乙個類。factory method使乙個類的例項化延遲到子類。

----------《設計模式》gof

結構圖(struct):

生活例項:

適用性:

1.當乙個類不知道它所必須建立的物件類的時候。

2.當乙個類希望由它子類來指定它所建立物件的時候。

3.當類將建立物件的職責委託給多個幫助子類中的某個,並且你希望將哪乙個幫助子類是**者這一資訊區域性化的時候。

例項**:

ca***ctory類: 1

public

abstract

class

ca***ctory2

car類: 1

public

abstract

class

car2

hongqica***ctory類: 1

public

class

hongqica***ctory:ca***ctory27

} bmwca***ctory類: 1

public

class

bmwca***ctory:ca***ctory27

} hongqicar類: 1

public

class

hongqicar:car27

public

override

void

run()811

public

override

void

stop()

1215}

bmwcar類: 1

public

class

bmwcar:car27

public

override

void

run()811

public

override

void

stop()

1215}

1xml version="

1.0"

encoding="

utf-8

"?>

2<

configuration

>

3<

>

4<

add key="

no1"

value="

hongqica***ctory

"/>

5<

add key="

no2"

value="

bmwca***ctory

"/>

6>

7configuration

>

program類: 1

class

program221

}

factory method 模式的幾個要點:

factory method模式主要用於隔離類物件的使用者和具體型別之間的耦合關係。面對乙個經常變化的具體型別,緊耦合關係會導致軟體的脆弱。

factory method模式通過物件導向的手法,將所要建立的具體物件工作延遲到子類,從而實現一種擴充套件(而非更改)的策略,較好地解決了這種緊耦合關係。

factory mehtod模式解決"單個物件"的需求變化,abstractfactory模式解決"系列物件"的需求變化,builder模式解決"物件部分"的需求變化。

**:

工廠方法模式 工廠方法模式

工廠方法模式是簡單工廠模式的公升級版,簡單工廠模式不符合設計模式的原則 即 單一職責,開閉原則 優點 職責明確,擴充套件方便 缺點 需要建立多個工廠 實現步驟 1.將工廠通用方法抽取介面 例如 ifactory 2.將產品抽取介面 例如 icar 3.實現各種產品 例如 baomacar,benti...

工廠方法模式 工廠方法模式 二

工廠方法模式是對簡單工廠的進一步抽象和封裝,需要新的類物件時不需要對既有工廠類進行修改,而是增加新的工廠類。工程類可以使用模版進一步封裝,由編譯器來生成 從而減少 編寫工作量。工廠方法的 c 實現01part產品抽象基類class animal virtual void show 0 02part產...

工廠方法模式(一) 簡單工廠方法模式

ps 第二篇學習部落格,堅持就是勝利。繼續設計模式的學習,記錄工廠模式,加深自己的理解。基本結構 abstractproduct 用來定義基本的商品的抽象 public abstract class abstractphoneproduct 用來實現抽象商品,生成各種商品 public class ...