工廠方法模式(Factory Method

2021-10-09 10:34:19 字數 1624 閱讀 4424

耦合關係:

動機(motivation):

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

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

意圖(intent):

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

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

結構圖(struct):

適用性:

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

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

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

例項**:

ca***ctory類:

public abstract class ca***ctory

car類: 

public abstract class car

hongqica***ctory類:

public class hongqica***ctory:ca***ctory

}

bmwca***ctory類:

public class bmwca***ctory:ca***ctory

}

hongqicar類:

public  class hongqicar:car

public override void run()

public override void stop()

}

bmwcar類:

public  class bmwcar:car

public override void run()

public override void stop()

}

<?xml version="1.0" encoding="utf-8" ?>

class program

}

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 ...