您的位置:首页 > 教程文章 > 编程开发

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

:0 :2021-04-22 22:16:10

本文以一个简单的实例来说明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#分屏控件用法实例
C#中委托和事件的区别实例解析

同类资源