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方法進行修改。


 


 


留言

這個網誌中的熱門文章

異世界NTR web版第三章 觀後感 喧賓奪主 ,反派實力過強

泛而不精的我被逐出了勇者隊伍 web第三章 觀後感 菲莉真能打; 露娜超爽der

持有縮小技能的D級冒險者,與聖女結婚並加入勇者團隊 漫畫 01-04 觀後感 大我與小我