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類別,實現了策略模式。
策略模式提供一系列的算法,算法的變化不會影響用戶對算法的使用。策略模式的優點是算法可以獨立出來,方便算法的測試,易於算法的擴展。
留言
張貼留言