码迷,mamicode.com
首页 > Windows程序 > 详细

策略模式(strategy)行为型模式c#简单例子

时间:2014-12-13 23:21:50      阅读:306      评论:0      收藏:0      [点我收藏+]

标签:blog   ar   sp   for   on   数据   2014   art   log   

策略模式(strategy)行为型模式c#简单例子

例子主是运用策略模式分解几种移动算法。

namespace adapterpattern
{
    public partial class StrategyFrom : Form
    {
        public StrategyFrom()
        {
            InitializeComponent();
        }

        private void btnDisplay_Click(object sender, EventArgs e)
        {
            Context context1 = new Context(new LeftMove ());
            context1.moveMethod1();
            listBox1.Items.Add(moveData.moveString );
            context1.moveMethod2();
            listBox1.Items.Add(moveData .moveString );
            Context context2= new Context(new RightMove());//算法变动后
            context2.moveMethod1();
            listBox1.Items.Add(moveData.moveString);
            context2.moveMethod2();
            listBox1.Items.Add(moveData.moveString);
           
        }
    }
    public interface IProessMove//表达算法抽象(strategy)
    {
        void Process();
    }
    public class Context
    {
        IProessMove proessMove;//对象组合
        public Context(IProessMove proessMove)//策略模式的连接点
        {
            this.proessMove = proessMove;
        }
        public void moveMethod1()
        {
            proessMove.Process();
            moveData.moveString += "方法1;";
        }
        public void moveMethod2()
        {
           
            proessMove.Process();
            moveData.moveString += "方法2;";
        }
    }
    public class moveData//移动算法中用到数据
    {
        public static  string moveString { set; get; }
    }
    public class LeftMove : IProessMove//移动算法1
    {
          public void Process()
        {
        moveData . moveString = "左移动算法";
        }
    }
    public class RightMove : IProessMove//移动算法2
    {
        public void Process()
        {
           moveData.moveString  = "右移动算法";
        }
    }
    public class TopMove : IProessMove//移动算法3
    {
        public void Process()
        {
          moveData.moveString   = "向上移动算法";
        }
    }
 
}


策略模式(strategy)行为型模式c#简单例子

标签:blog   ar   sp   for   on   数据   2014   art   log   

原文地址:http://blog.csdn.net/zhgl7688/article/details/41913423

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!