耦合關係:
動機(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 ...