工廠方法模式,又稱工廠模式、多型工廠模式和虛擬構造器模式,通過定義工廠父類負責定義建立物件的公共介面,而子類則負責生成具體的物件。
工廠方法模式,定義乙個用於建立物件的介面,讓子類決定例項化哪乙個類。工廠方法使乙個類的例項化延遲到其子類。
下圖為計算器程式的工廠方法模式的uml圖結構:
下面為計算器程式的工廠方法模式的**實現:
//運算類的抽象類
abstract
class
operation
public
double
getnumbera()
public
void
setnumberb
(double numberb)
public
double
getnumberb()
public
abstract
double
getresult()
;}//加法類
public
class
addextends
operation
}//減法類
public
class
subextends
operation
}//乘法類
public
class
mulextends
operation
}//除法類
public
class
divextends
operation
}
//工廠介面
inte***ce
ifactory
//加法類工廠
public
class
addfactory
implements
ifactory
}//減法類工廠
public
class
subfactory
implements
ifactory
}//乘法類工廠
public
class
mulfactory
implements
ifactory
}//除法類工廠
public
class
divfactory
implements
ifactory
}
//客戶端**
public
class
main
}
客戶端結果截圖:
下圖為簡單工廠方法模式的計算器程式uml圖:
下圖為工廠方法模式的計算器程式uml圖:
通過對比兩張uml圖我們可以發現如下區別:
大話設計模式讀書筆記 5 工廠方法模式
生活中的例子 車有很多的品牌,寶馬,賓士等,製造汽車的工廠就是抽象出來的工廠,而製造寶馬汽車的工廠 就是具體的產品工廠,這就是工廠方法的應用場景工廠方法模式 定義乙個建立物件的介面,讓子類決定例項化哪乙個類,工廠方法使乙個類的例項化延伸到了子類 creator 抽象工廠,宣告工廠方法 concret...
設計模式讀書筆記(七) 工廠方法模式
模式定義 工廠方法模式 factory method pattern 又名工廠模式,虛擬構造器 virtual constructor 模式 多型工廠模式 polymorphic factory 模式,它屬於類建立型。在該模式中工廠父類負責定義建立產品物件的公共介面,而工廠子類則負責生成具體產品物件...
大話設計模式讀書筆記 簡單工廠模式
普通的工廠方法模式通常伴隨著物件的具體型別與工廠具體型別的一一對應,客戶端 根據需要選擇合適的具體型別工廠使用。然而,這種選擇可能包含複雜的邏輯。這時,可以建立乙個單一的工廠類,用以包含這種選擇邏輯,根據引數的不同選擇實現不同的具體物件。這個工廠類不需要由每個具體產品實現乙個自己的具體的工廠類,所以...