程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#戰略形式(Strategy Pattern)實例教程

C#戰略形式(Strategy Pattern)實例教程

編輯:C#入門知識

C#戰略形式(Strategy Pattern)實例教程。本站提示廣大學習愛好者:(C#戰略形式(Strategy Pattern)實例教程)文章只能為提供參考,不一定能成為您想要的結果。以下是C#戰略形式(Strategy Pattern)實例教程正文


本文以一個簡略的實例來講明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#法式設計有所贊助。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved