C# 程式設計經典300例 實例088 果園種植水果 簡單工廠模式
《C# 程式設計經典300例》第8章介紹常用的設計模式,實例088介紹簡單工廠模式,為何要使用工廠模式? 可參考《Clean Code》第11章,Bob大叔有詳盡的解說。
實例描述
簡單工廠模式對一系列類型的創建,根據變量不同,返回不同的類型實例。
果園需要種植蘋果和橘子兩種水果,通過簡單工廠模式由果園決定種植什麼類型的水果。
輸出「種植蘋果樹」與「種植橘子樹」字串。
實現過程
//抽象水果類
public abstract class Fruit
{
public abstract void Plant();
}
//具體蘋果類
public class Apple :Fruit
{
public override void Plant()
{
Console.WriteLine(“種植蘋果樹”);
}
}
//具體橘子類
public class Orange :Fruit
{
public override void Plant()
{
Console.WriteLine(“種植橘子樹”);
}
}
//具體果園類
public class Orchard
{
public Fruit Create(string name)
{
switch (name)
{
case “Apple”:
return new Apple();
case “Orange”:
return new Orange();
default:
throw new Exception(“水果名稱錯誤”);
}
}
}
main函數代碼如下:
Orchard factory = new Orchard();
Fruit apple = factory.Create(“Apple”);
apple.Plant();
Fruit orange = factory.Create(“Orange”);
orange.Plant();
代碼解析
簡單工廠模式適用於客戶程序與具體創建類型之間的隔離。
Orchard類別可以考慮定義為靜態類別,通過靜態方法來構造Fruit子類實例,或是單例模式。
如果要新增第三種水果香蕉,需要對CreateFruit方法進行修改。
留言
張貼留言