Jimmypony的技术汇总区
很多都不会,很多都不懂,不要浮躁,静心学习

命令模式:

把需求的请求者和需求的执行者从对象中解耦出来,我个人的理解是把请求者和执行者分离,执行者封装复杂的执行过程,通过请求者的指示找到不同的执行者来处理或者执行不同的过程。

以下以命令者 命令传递者 命令执行者为例,解释妈妈喊起床的过程:

 

  1    /// <summary>
  2    /// 命令者
  3    /// </summary>

  4    public interface ICommand
  5    {
  6        void SetCommand(IOrder order);
  7        void Press();
  8    }

  9
 10    /// <summary>
 11    /// 命令接受者
 12    /// </summary>

 13    public interface IOrder 
 14    {
 15        void AddOrder(IAction action);
 16        void ShowAction();
 17    }

 18
 19    /// <summary>
 20    /// 命令内容处理者
 21    /// </summary>

 22    public interface IAction 
 23    {
 24        void Action();
 25    }

 26
 27    public class Commmander : ICommand
 28    {
 29        private IOrder order;
 30
 31        ICommand Members
 48    }

 49
 50    public class Order : IOrder
 51    {
 52        private List<IAction> actions=new List<IAction>();
 53
 54        IOrder Members
 71    }

 72
 73    命令操作
124
125    class Program
126    {
127        static void Main(string[] args)
128        {
129            ICommand cmd = new Commmander();
130            //当然我在这里写的比较简单
131            //复杂的Order定制可以用到工厂模式
132            IOrder order = new Order();
133
134            order.AddOrder(new Up());
135            order.AddOrder(new Toothbrushing());
136            order.AddOrder(new Wash());
137            order.AddOrder(new Out());
138            cmd.SetCommand(order);
139            cmd.Press();
140
141            Console.Read();
142        }

143    }
 


posted on 2008-09-19 16:24  Jim~  阅读(269)  评论(0编辑  收藏  举报