• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C#教程 > C#策略模式(Strategy Pattern)实例教程

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

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了strategy pattern,微策略microstrategy,策略 strategy,strategy,strategy是什么意思等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

本文以一个简单的实例来说明C#策略模式的实现方法,分享给大家供大家参考。具体实现方法如下:

一般来说,当一个动作有多种实现方法,在实际使用时,需要根据不同情况选择某个方法执行动作,就可以考虑使用策略模式。

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

public interface IBall
{
    void Play();
}

</div>

有可能是玩足球、篮球、排球等,把这些球类抽象成实现接口的类。分别如下:

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("我喜欢排球");
    }
}

</div>

还有一个类专门用来选择哪种球类,并执行接口方法:

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

</div>

客户端需要让用户作出选择,根据不同的选择实例化具体类:

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();
      }
    }
}

</div>

程序运行结果如下图所示:

希望本文所述对大家的C#程序设计有所帮助。

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

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

相关文章

  • 2017-05-28C#实现中英文混合字符串截取的方法
  • 2017-05-28C# 中DateTime 的使用技巧汇总
  • 2017-05-28C# 动态加载程序集信息
  • 2017-05-28C#隐式运行CMD命令(隐藏命令窗口)
  • 2017-05-28c#连接mdf文件示例分享
  • 2017-05-28解析从源码分析常见的基于Array的数据结构动态扩容机制的详解
  • 2017-05-28c# winform时钟的实现代码
  • 2017-05-28c#生成随机数示例分享
  • 2017-05-28c#程序删除自身代码示例分享
  • 2017-05-28探讨如何用委托处理排序

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • C#根据年月日计算星期几的函数小例子
    • C#基于cookie实现的购物车功能
    • C#数据结构与算法揭秘二 线性结构
    • C#使用yield关键字让自定义集合实现foreach遍历的方法
    • 举例讲解C#中自动实现的属性
    • C#实现解析百度天气数据,Rss解析百度新闻以及根据IP获取所在城市的方法
    • c#实现网站监控查看是否正常示例
    • C#实现多线程写入同一个文件的方法
    • c#创建Graphics对象的三种方法
    • .net的命名空间类库的简单介绍

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有