C# 程式設計經典300例 實例100 不斷更新的種值方法 策略模式

      實例100介紹策略模式,從範例可看出種蘋果與種橘子採用不同的策略。


實例描述


果園不斷更新的種植方法,果園為了種植更多的水果,需要嘗試新的種植技術。


輸出字串「種植蘋果」、「種植橘子」。


實現過程


//果園類


public class Orchard


{


   Fruit fruit;


   public Orchard(Fruit fruit)


   {


       this.fruit = fruit;


   }


   public void Plant()


   {


       fruit.Plant();


   }


}


 


//抽象水果類


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(“種植橘子”);


   }


}


 


main函數代碼如下:


 


Orchard appleOrchard = new Orchard(new Apple());


appleOrchard.Plant();


Orchard orangeOrchard = new Orchard(new Orange());


orangeOrchard.Plant();


 


代碼解析


 


抽象類Fruit提供種植方法的公共介面Plant,子類Apple與Orange是種植方法的具體實現類。


 


Orchard果園類別依賴抽象Fruit類別,實現了策略模式。


 


策略模式提供一系列的算法,算法的變化不會影響用戶對算法的使用。策略模式的優點是算法可以獨立出來,方便算法的測試,易於算法的擴展。


 


留言

這個網誌中的熱門文章

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

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

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