首页 > 编程 > C# > 正文

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

2020-01-24 02:25:39
字体:
来源:转载
供稿:网友

本文以一个简单的实例来说明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#程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表