簡單工廠模式優缺點:模式的核心是工廠類,這個類負責產品的建立,而客戶端可以免去產品建立的責任,這實現了責任的分割。但由於工廠類集中了所有產品建立邏輯的,如果不能正常工作的話會對系統造成很大的影響。如果增加新產品必須修改工廠角色的原始碼。
以園丁種植水果為例討論該模式的具體實現:
fruit 水果介面,規定水果具有的一些共同特性
strawberry 士多啤梨類 派生自fruit介面
fruitgardener 園丁類 負責士多啤梨與蘋果的建立工作。
當client要建立水果(蘋果或士多啤梨物件)的時候呼叫園丁類的factory方法建立:uml圖如下:
**如下:
fruit.cs
namespace ******_factory }
namespace ******_factory
#region fruit 成員
public void grow()
public void harvest()
public void plant()
#endregion
} }
strawberry.cs
namespace ******_factory
#region fruit 成員
public void grow()
public void harvest()
public void plant()
#endregion
} }
fruitgardener.cs
namespace ******_factory
else if(which.equals ("strawberry"))
else }
} }
client.cs
using system;
namespace ******_factory }
} 輸出如下:
strawberry is growing.......
strawberry is harvesting.......
strawberry is planting.......
設計模式 工廠模式(簡單工廠模式和方法工廠模式)
一 簡單工廠模式 簡單工廠模式概述 又叫靜態工廠方法模式,它定義乙個具體的工廠類負責建立一些類的例項 優點 客戶端不需要在負責物件的建立,從而明確了各個類的職責 缺點 這個靜態工廠類負責所有物件的建立,如果有新的物件增加,或者某些物件的建立方式不同,就需要不斷的修改工廠類,不利於後期的維護 動物類 ...
設計模式之簡單工廠 工廠方法模式 抽象工廠模式
這裡講三種模式放在一起說明,是因為三種模式關聯性很強 抽象工廠模式簡單化以後就是工廠方法模式,工廠方法模式再簡單化就是簡單工廠模式 簡單工廠模式並沒有被列入到gof的設計模式中 public class factory 簡單工廠類,實現建立產品物件 class factory return prod...
Abstract Factory抽象工廠模式
abstract factory抽象工廠模式 抽象工廠是一種建立型模式,是為了解決例項化時所帶來的問題。我們先來看看是什麼問題,有的時候我們會遇到這種情況,我們需要一系列的物件。舉個例子,有一系列bmw汽車零部件的物件 輪子bmwwheel,油箱bmwoilbox,在乙個管理函式中呼叫它們,如下 c...