1. 程式人生 > >C#策略模式(Strategy Pattern)實例教程

C#策略模式(Strategy Pattern)實例教程

奇葩 orm 需要 策略 lin pub 遊戲實例 客戶端 使用

本文以一個簡單的實例來說明C#策略模式的實現方法,分享給大家供大家參考。具體實現方法如下:

一般來說,當一個動作有多種實現方法,在實際使用時,需要根據不同情況選擇某個方法執行動作,就可以考慮使用策略模式。

把動作抽象成接口,比如把玩球抽象成接口。代碼如下:

public interface IBall
{
    void Play();
}

有可能是玩足球、籃球、排球等,把這些球類抽象成實現接口的類。分別如下:

public class Football : IBall
{
    public void Play()
    {
      Console.WriteLine("我喜歡足球");
    }
}
public class Basketball : IBall
{
    public void Play()
    {
      Console.WriteLine("我喜歡籃球");
    }
}
public class Volleyball : IBall
{
    public void Play()
    {
      Console.WriteLine("我喜歡排球");
    }
}

還有一個類專門用來選擇哪種球類,並執行接口方法:

public class SportsMan
{
    private IBall ball;
    public void SetHobby(IBall myBall)
    {
      ball = myBall;
    }
    public void StartPlay()
    {
      ball.Play();
    }
}

客戶端需要讓用戶作出選擇,根據不同的選擇實例化具體類:

class Program
{
    static void Main(string[] args)
    {
      IBall ball = null;
      SportsMan man = new SportsMan();
      while (true)
      {
        Console.WriteLine("選擇你喜歡的球類項目(1=足球, 2=籃球,3=排球)");
        string input = Console.ReadLine();
        switch (input)
        {
          case "1":
            ball = new Football();
            break;
          case "2":
            ball = new Basketball();
            break;
          case "3":
            ball = new Volleyball();
            break;
        }
        man.SetHobby(ball);
        man.StartPlay();
      }
    }
}

程序運行結果如下圖所示:

技術分享

希望本文所述對大家的C#程序設計有所幫助。

除聲明外,跑步客文章均為原創,轉載請以鏈接形式標明本文地址
C#策略模式(Strategy Pattern)實例教程

本文地址: http://www.paobuke.com/develop/c-develop/pbk23519.html






相關內容

技術分享C#設置自定義文件圖標實現雙擊啟動(修改註冊表)技術分享C#調用存儲過程詳解(帶返回值、參數輸入輸出等)技術分享12306奇葩驗證碼引發思考之C#實現驗證碼程序技術分享C#自定義控件添加右鍵菜單的方法
技術分享C#讀取Excel並轉化成XML的方法技術分享C#實現Json轉Unicode的方法技術分享C#實現洗牌遊戲實例技術分享
C#中把英文字母轉換為大寫或小寫的方法

C#策略模式(Strategy Pattern)實例教程