工廠模式:將建立物件例項的工作交給工廠來完成!
三種實現方式:簡單工廠模式、工廠方法模式、抽象工廠模式
1.簡單工廠模式
建立所需的實體類
public
abstract
class
pizza
//準備原材料,不同種類披薩原材料不同,因此寫成抽象的
public
abstract
void
prepare()
;public
void
bake()
public
void
cut(
)public
void
box(
)}
public
class
greekpizza
extends
pizza
}
public
class
cheesepizza
extends
pizza
}
建立工廠類
//簡單的披薩工廠
public
class
******pizzafactory
else
if(pizzatype.
equals
("cheese"))
else
return pizza;
}}
public
class
pizzastore
}}
上述建立簡單工廠的模式為靜態工廠,還可以以下面的方式建立工廠
//簡單的披薩工廠
public
class
******pizzafactory2
else
if(pizzatype.
equals
("cheese"))
else
return pizza;
}}
public
class
pizzastore2
public
void
orderpizza
(string pizzatype)
}}
2.工廠方法模式
將建立物件例項的**放在子類中
建立所需實體類
public
class
bjcheesepizza
extends
pizza
}
public
class
bjchinesepizza
extends
pizza
}
public
class
nycheesepizza
extends
pizza
}
public
class
nychinesepizza
extends
pizza
}
建立抽象的披薩店
public
abstract
class
pizzastore
return pizza;
}}
紐約的披薩店
public
class
nypizzastore
extends
pizzastore
else
if(type.
equals
("chinese"))
else
}}
北京的披薩店
public
class
bjpizzastore
extends
pizzastore
else
if(type.
equals
("chinese"))
else
}}
主函式
public
class
main
}
3.抽象工廠模式建立抽象工廠
public
inte***ce
abstractfactory
public
class
bjpizzafactory
implements
abstractfactory
else
if(type.
equals
("chinese"))
else
}}
public
class
nypizzafactory
implements
abstractfactory
else
if(type.
equals
("chinese"))
else
}}
public
class
pizzastore
public
void
setabstractfactory
(abstractfactory abstractfactory)
public pizza orderpizza
(string type)
return pizza;
}}
主函式
public
class
main
}
簡單工廠模式,工廠模式,抽象工廠模式
三種模式看了一天,記錄下自己的理解 headfirst,比薩店為例 1,簡單工廠模式 乙個具體的工廠類 pizzafactory 乙個抽象的產品類pizza,可以派生出多個具體的產品類 客戶 pizzastore類 工廠類 pizzafactory類關聯產品類pizza,工廠生產出不同型別的pizz...
簡單工廠模式 工廠模式 抽象工廠模式
簡單工廠模式 簡單工廠模式的最大優點在於工廠類中包含了必要的邏輯判斷,根據客戶端的選擇條件動態例項化相關類,對於客戶端來說,去除了與具體產品的依賴。但增加功能時,需增加 case 邏輯判斷分支條件,修改了原有的類,我們不但對擴充套件開發了,對修改也開放了,違背了開放 封閉原則。工廠方法模式,定義了乙...
簡單工廠模式 工廠模式 抽象工廠模式
其實這個三個c 的設計模式已經學習很長時間了,今晚才想起來要寫這三個設計模式,為什麼要用c 中的設計模式呢?for example,你已經會開車了,正著開,倒著開,轉彎,這些都是開車基本的,但是你並沒有很高的車技,並不會炫酷。漂移,就好像c 中的設計模式一樣,在你學好c 的基礎上,嫻熟的應用出的新技...