乐在其中设计模式(C#) - 命令模式(Command Pattern)

[索引页]
[源码下载]


乐在其中设计模式(C#) - 命令模式(Command Pattern)


作者:webabcd


介绍
将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可取消的操作。


示例
有一个Message实体类,某个类对它的操作有Insert()和Delete()方法。现在要求可以对之前的所有操作做撤销和重复。
乐在其中设计模式(C#) - 命令模式(Command Pattern)
 
MessageModel
乐在其中设计模式(C#) - 命令模式(Command Pattern)using System; 
乐在其中设计模式(C#) - 命令模式(Command Pattern)using System.Collections.Generic; 
乐在其中设计模式(C#) - 命令模式(Command Pattern)using System.Text; 
乐在其中设计模式(C#) - 命令模式(Command Pattern) 
乐在其中设计模式(C#) - 命令模式(Command Pattern)namespace Pattern.Command 
乐在其中设计模式(C#) - 命令模式(Command Pattern)
乐在其中设计模式(C#) - 命令模式(Command Pattern)        /// <summary> 
乐在其中设计模式(C#) - 命令模式(Command Pattern)        /// Message实体类 
乐在其中设计模式(C#) - 命令模式(Command Pattern)        /// </summary> 
乐在其中设计模式(C#) - 命令模式(Command Pattern)        public class MessageModel 
乐在其中设计模式(C#) - 命令模式(Command Pattern)        { 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                /// <summary> 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                /// 构造函数 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                /// </summary> 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                /// <param name="msg">Message内容</param> 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                /// <param name="pt">Message发布时间</param> 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                public MessageModel(string msg, DateTime pt) 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                { 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                        this._message = msg; 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                        this._publishTime = pt; 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                } 
乐在其中设计模式(C#) - 命令模式(Command Pattern) 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                private string _message; 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                /// <summary> 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                /// Message内容 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                /// </summary> 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                public string Message 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                { 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                        get { return _message; } 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                        set { _message = value; } 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                } 
乐在其中设计模式(C#) - 命令模式(Command Pattern) 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                private DateTime _publishTime; 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                /// <summary> 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                /// Message发布时间 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                /// </summary> 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                public DateTime PublishTime 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                { 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                        get { return _publishTime; } 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                        set { _publishTime = value; } 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                } 
乐在其中设计模式(C#) - 命令模式(Command Pattern)        } 
乐在其中设计模式(C#) - 命令模式(Command Pattern)}
 
Action
乐在其中设计模式(C#) - 命令模式(Command Pattern)using System; 
乐在其中设计模式(C#) - 命令模式(Command Pattern)using System.Collections.Generic; 
乐在其中设计模式(C#) - 命令模式(Command Pattern)using System.Text; 
乐在其中设计模式(C#) - 命令模式(Command Pattern) 
乐在其中设计模式(C#) - 命令模式(Command Pattern)namespace Pattern.Command 
乐在其中设计模式(C#) - 命令模式(Command Pattern)
乐在其中设计模式(C#) - 命令模式(Command Pattern)        /// <summary> 
乐在其中设计模式(C#) - 命令模式(Command Pattern)        /// enum 
乐在其中设计模式(C#) - 命令模式(Command Pattern)        /// 定义操作的两种方法Insert和Delete 
乐在其中设计模式(C#) - 命令模式(Command Pattern)        /// </summary> 
乐在其中设计模式(C#) - 命令模式(Command Pattern)        public enum Action 
乐在其中设计模式(C#) - 命令模式(Command Pattern)        { 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                /// <summary> 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                /// Insert 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                /// </summary> 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                Insert, 
乐在其中设计模式(C#) - 命令模式(Command Pattern) 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                /// <summary> 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                /// Delete 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                /// </summary> 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                Delete 
乐在其中设计模式(C#) - 命令模式(Command Pattern)        } 
乐在其中设计模式(C#) - 命令模式(Command Pattern)}
 
SqlMessage
乐在其中设计模式(C#) - 命令模式(Command Pattern)using System; 
乐在其中设计模式(C#) - 命令模式(Command Pattern)using System.Collections.Generic; 
乐在其中设计模式(C#) - 命令模式(Command Pattern)using System.Text; 
乐在其中设计模式(C#) - 命令模式(Command Pattern) 
乐在其中设计模式(C#) - 命令模式(Command Pattern)namespace Pattern.Command 
乐在其中设计模式(C#) - 命令模式(Command Pattern)
乐在其中设计模式(C#) - 命令模式(Command Pattern)        /// <summary> 
乐在其中设计模式(C#) - 命令模式(Command Pattern)        /// 接收者(Receiver)角色 
乐在其中设计模式(C#) - 命令模式(Command Pattern)        /// Sql方式操作Message 
乐在其中设计模式(C#) - 命令模式(Command Pattern)        /// </summary> 
乐在其中设计模式(C#) - 命令模式(Command Pattern)        public class SqlMessage 
乐在其中设计模式(C#) - 命令模式(Command Pattern)        { 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                /// <summary> 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                /// 操作 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                /// </summary> 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                /// <param name="action">操作的方法</param> 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                /// <param name="mm">Message实体对象</param> 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                public void Operation(Action action, MessageModel mm) 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                { 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                        switch (action) 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                        { 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                                case Action.Insert :    
乐在其中设计模式(C#) - 命令模式(Command Pattern)                                        Insert(mm);    
乐在其中设计模式(C#) - 命令模式(Command Pattern)                                        break
乐在其中设计模式(C#) - 命令模式(Command Pattern)                                case Action.Delete : 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                                        Delete(mm); 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                                        break
乐在其中设计模式(C#) - 命令模式(Command Pattern)                        } 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                } 
乐在其中设计模式(C#) - 命令模式(Command Pattern) 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                /// <summary> 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                /// 插入Message 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                /// </summary> 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                /// <param name="mm">Message实体对象</param> 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                private void Insert(MessageModel mm) 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                { 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                        // 代码略 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                } 
乐在其中设计模式(C#) - 命令模式(Command Pattern) 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                /// <summary> 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                /// 删除Message 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                /// </summary> 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                /// <param name="mm">Message实体对象</param> 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                private void Delete(MessageModel mm) 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                { 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                        // 代码略 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                } 
乐在其中设计模式(C#) - 命令模式(Command Pattern)        } 
乐在其中设计模式(C#) - 命令模式(Command Pattern)}
 
ICommand
乐在其中设计模式(C#) - 命令模式(Command Pattern)using System; 
乐在其中设计模式(C#) - 命令模式(Command Pattern)using System.Collections.Generic; 
乐在其中设计模式(C#) - 命令模式(Command Pattern)using System.Text; 
乐在其中设计模式(C#) - 命令模式(Command Pattern) 
乐在其中设计模式(C#) - 命令模式(Command Pattern)namespace Pattern.Command 
乐在其中设计模式(C#) - 命令模式(Command Pattern)
乐在其中设计模式(C#) - 命令模式(Command Pattern)        /// <summary> 
乐在其中设计模式(C#) - 命令模式(Command Pattern)        /// 命令(Command)角色 
乐在其中设计模式(C#) - 命令模式(Command Pattern)        /// </summary> 
乐在其中设计模式(C#) - 命令模式(Command Pattern)        public interface ICommand 
乐在其中设计模式(C#) - 命令模式(Command Pattern)        { 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                /// <summary> 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                /// 执行 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                /// </summary> 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                /// <returns>操作的方法及操作的信息</returns> 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                string Execute(); 
乐在其中设计模式(C#) - 命令模式(Command Pattern) 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                /// <summary> 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                /// 取消执行 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                /// </summary> 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                /// <returns>操作的方法及操作的信息</returns> 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                string UnExecute(); 
乐在其中设计模式(C#) - 命令模式(Command Pattern)        } 
乐在其中设计模式(C#) - 命令模式(Command Pattern)}
 
SqlMessageCommand
乐在其中设计模式(C#) - 命令模式(Command Pattern)using System; 
乐在其中设计模式(C#) - 命令模式(Command Pattern)using System.Collections.Generic; 
乐在其中设计模式(C#) - 命令模式(Command Pattern)using System.Text; 
乐在其中设计模式(C#) - 命令模式(Command Pattern) 
乐在其中设计模式(C#) - 命令模式(Command Pattern)namespace Pattern.Command 
乐在其中设计模式(C#) - 命令模式(Command Pattern)
乐在其中设计模式(C#) - 命令模式(Command Pattern)        /// <summary> 
乐在其中设计模式(C#) - 命令模式(Command Pattern)        /// 具体命令(ConcreteCommand)角色 
乐在其中设计模式(C#) - 命令模式(Command Pattern)        /// </summary> 
乐在其中设计模式(C#) - 命令模式(Command Pattern)        public class SqlMessageCommand : ICommand 
乐在其中设计模式(C#) - 命令模式(Command Pattern)        { 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                /// <summary> 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                /// 操作的方法 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                /// </summary> 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                private Action _action; 
乐在其中设计模式(C#) - 命令模式(Command Pattern) 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                /// <summary> 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                /// Message实体对象 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                /// </summary> 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                private MessageModel _mm; 
乐在其中设计模式(C#) - 命令模式(Command Pattern) 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                /// <summary> 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                /// 构造函数 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                /// </summary> 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                /// <param name="action">操作的方法</param> 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                /// <param name="mm">Message实体对象</param> 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                public SqlMessageCommand(Action action, MessageModel mm) 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                { 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                        this._action = action; 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                        this._mm = mm; 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                } 
乐在其中设计模式(C#) - 命令模式(Command Pattern) 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                /// <summary> 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                /// 执行 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                /// </summary> 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                /// <returns>操作的方法及操作的信息</returns> 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                public string Execute() 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                { 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                        new SqlMessage().Operation(_action, _mm); 
乐在其中设计模式(C#) - 命令模式(Command Pattern) 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                        return _action.ToString() + ":" + _mm.Message; 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                } 
乐在其中设计模式(C#) - 命令模式(Command Pattern) 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                /// <summary> 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                /// 取消执行(调用一个方法,以决定取消执行的算法) 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                /// </summary> 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                /// <returns>操作的方法及操作的信息</returns> 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                public string UnExecute() 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                { 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                        _action = GetUndoAction(_action); 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                        new SqlMessage().Operation(_action, _mm); 
乐在其中设计模式(C#) - 命令模式(Command Pattern) 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                        return _action.ToString() + ":" + _mm.Message; 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                } 
乐在其中设计模式(C#) - 命令模式(Command Pattern) 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                /// <summary> 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                /// 获得取消执行的算法 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                /// </summary> 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                /// <param name="action">操作的方法</param> 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                /// <returns></returns> 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                private Action GetUndoAction(Action action) 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                { 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                        Action undo; 
乐在其中设计模式(C#) - 命令模式(Command Pattern) 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                        switch (action) 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                        { 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                                case Action.Insert :    
乐在其中设计模式(C#) - 命令模式(Command Pattern)                                        undo = Action.Delete;    
乐在其中设计模式(C#) - 命令模式(Command Pattern)                                        break
乐在其中设计模式(C#) - 命令模式(Command Pattern)                                case Action.Delete : 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                                        undo = Action.Insert; 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                                        break
乐在其中设计模式(C#) - 命令模式(Command Pattern)                                // 这句没啥用 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                                default : 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                                        undo = Action.Insert; 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                                        break
乐在其中设计模式(C#) - 命令模式(Command Pattern)                        } 
乐在其中设计模式(C#) - 命令模式(Command Pattern) 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                        return undo; 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                } 
乐在其中设计模式(C#) - 命令模式(Command Pattern)        } 
乐在其中设计模式(C#) - 命令模式(Command Pattern)}
 
Message
乐在其中设计模式(C#) - 命令模式(Command Pattern)using System; 
乐在其中设计模式(C#) - 命令模式(Command Pattern)using System.Collections.Generic; 
乐在其中设计模式(C#) - 命令模式(Command Pattern)using System.Text; 
乐在其中设计模式(C#) - 命令模式(Command Pattern) 
乐在其中设计模式(C#) - 命令模式(Command Pattern)namespace Pattern.Command 
乐在其中设计模式(C#) - 命令模式(Command Pattern)
乐在其中设计模式(C#) - 命令模式(Command Pattern)        /// <summary> 
乐在其中设计模式(C#) - 命令模式(Command Pattern)        /// 请求者(Invoker)角色 
乐在其中设计模式(C#) - 命令模式(Command Pattern)        /// </summary> 
乐在其中设计模式(C#) - 命令模式(Command Pattern)        public class Message 
乐在其中设计模式(C#) - 命令模式(Command Pattern)        { 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                /// <summary> 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                /// 命令集合(保存每次操作) 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                /// </summary> 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                private List<ICommand> _listCommand = new List<ICommand>(); 
乐在其中设计模式(C#) - 命令模式(Command Pattern) 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                /// <summary> 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                /// 命令集合中当前要执行的命令的索引 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                /// </summary> 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                private int current = 0; 
乐在其中设计模式(C#) - 命令模式(Command Pattern) 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                /// <summary> 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                /// 执行Sql 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                /// </summary> 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                /// <param name="action">操作的方法</param> 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                /// <param name="mm">Message实体对象</param> 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                /// <returns>操作的方法及操作的信息</returns> 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                public string Do(Action action, MessageModel mm) 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                { 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                        string rtn = ""; 
乐在其中设计模式(C#) - 命令模式(Command Pattern) 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                        ICommand cmd = new SqlMessageCommand(action, mm); 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                        rtn = cmd.Execute(); 
乐在其中设计模式(C#) - 命令模式(Command Pattern) 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                        _listCommand.Add(cmd); 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                        current++; 
乐在其中设计模式(C#) - 命令模式(Command Pattern) 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                        return rtn; 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                } 
乐在其中设计模式(C#) - 命令模式(Command Pattern) 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                /// <summary> 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                /// 撤销 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                /// </summary> 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                /// <param name="levels">执行撤销操作的次数</param> 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                /// <returns>操作的方法及操作的信息(用空格分开多条记录)</returns> 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                public string Undo(int levels) 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                { 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                        string rtn = ""; 
乐在其中设计模式(C#) - 命令模式(Command Pattern) 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                        for (int i = 0; i < levels; i++) 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                        { 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                                if (current > 0) 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                                { 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                                        ICommand cmd = _listCommand[--current]; 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                                        rtn += cmd.UnExecute() + " "
乐在其中设计模式(C#) - 命令模式(Command Pattern)                                } 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                        } 
乐在其中设计模式(C#) - 命令模式(Command Pattern) 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                        return rtn; 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                } 
乐在其中设计模式(C#) - 命令模式(Command Pattern) 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                /// <summary> 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                /// 重复 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                /// </summary> 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                /// <param name="levels">执行重复操作的次数</param> 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                /// <returns>操作的方法及操作的信息(用空格分开多条记录)</returns> 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                public string Redo(int levels) 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                { 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                        string rtn = ""; 
乐在其中设计模式(C#) - 命令模式(Command Pattern) 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                        for (int i = 0; i < levels; i++) 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                        { 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                                if (current < _listCommand.Count - 1) 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                                { 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                                        ICommand cmd = _listCommand[current++]; 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                                        rtn += cmd.UnExecute() + " "
乐在其中设计模式(C#) - 命令模式(Command Pattern)                                } 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                        } 
乐在其中设计模式(C#) - 命令模式(Command Pattern) 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                        return rtn; 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                } 
乐在其中设计模式(C#) - 命令模式(Command Pattern)        } 
乐在其中设计模式(C#) - 命令模式(Command Pattern)}
 
client
乐在其中设计模式(C#) - 命令模式(Command Pattern)using System; 
乐在其中设计模式(C#) - 命令模式(Command Pattern)using System.Data; 
乐在其中设计模式(C#) - 命令模式(Command Pattern)using System.Configuration; 
乐在其中设计模式(C#) - 命令模式(Command Pattern)using System.Collections; 
乐在其中设计模式(C#) - 命令模式(Command Pattern)using System.Web; 
乐在其中设计模式(C#) - 命令模式(Command Pattern)using System.Web.Security; 
乐在其中设计模式(C#) - 命令模式(Command Pattern)using System.Web.UI; 
乐在其中设计模式(C#) - 命令模式(Command Pattern)using System.Web.UI.WebControls; 
乐在其中设计模式(C#) - 命令模式(Command Pattern)using System.Web.UI.WebControls.WebParts; 
乐在其中设计模式(C#) - 命令模式(Command Pattern)using System.Web.UI.HtmlControls; 
乐在其中设计模式(C#) - 命令模式(Command Pattern) 
乐在其中设计模式(C#) - 命令模式(Command Pattern)using Pattern.Command; 
乐在其中设计模式(C#) - 命令模式(Command Pattern) 
乐在其中设计模式(C#) - 命令模式(Command Pattern)public partial class Command : System.Web.UI.Page 
乐在其中设计模式(C#) - 命令模式(Command Pattern)
乐在其中设计模式(C#) - 命令模式(Command Pattern)        protected void Page_Load(object sender, EventArgs e) 
乐在其中设计模式(C#) - 命令模式(Command Pattern)        { 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                Message m = new Message(); 
乐在其中设计模式(C#) - 命令模式(Command Pattern) 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                Response.Write("操作"); 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                Response.Write("<br />"); 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                Response.Write(m.Do(Action.Insert, new MessageModel("第1条", DateTime.Now))); 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                Response.Write("<br />"); 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                Response.Write(m.Do(Action.Insert, new MessageModel("第2条", DateTime.Now))); 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                Response.Write("<br />"); 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                Response.Write(m.Do(Action.Insert, new MessageModel("第3条", DateTime.Now))); 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                Response.Write("<br />"); 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                Response.Write(m.Do(Action.Insert, new MessageModel("第4条", DateTime.Now))); 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                Response.Write("<br />"); 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                Response.Write(m.Do(Action.Delete, new MessageModel("第2条", DateTime.Now))); 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                Response.Write("<br />"); 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                Response.Write(m.Do(Action.Insert, new MessageModel("第5条", DateTime.Now))); 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                Response.Write("<br />"); 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                Response.Write(m.Do(Action.Delete, new MessageModel("第3条", DateTime.Now))); 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                Response.Write("<br />"); 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                Response.Write(m.Do(Action.Insert, new MessageModel("第6条", DateTime.Now))); 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                Response.Write("<br />"); 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                Response.Write(m.Do(Action.Insert, new MessageModel("第7条", DateTime.Now))); 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                Response.Write("<br />"); 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                Response.Write("<br />"); 
乐在其中设计模式(C#) - 命令模式(Command Pattern) 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                Response.Write("撤销4次操作"); 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                Response.Write("<br />"); 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                Response.Write(m.Undo(4)); 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                Response.Write("<br />"); 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                Response.Write("<br />"); 
乐在其中设计模式(C#) - 命令模式(Command Pattern) 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                Response.Write("重复2次操作"); 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                Response.Write("<br />"); 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                Response.Write(m.Redo(2)); 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                Response.Write("<br />"); 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                Response.Write("<br />"); 
乐在其中设计模式(C#) - 命令模式(Command Pattern) 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                Response.Write("撤销3次操作"); 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                Response.Write("<br />"); 
乐在其中设计模式(C#) - 命令模式(Command Pattern)                Response.Write(m.Undo(3)); 
乐在其中设计模式(C#) - 命令模式(Command Pattern)        } 
乐在其中设计模式(C#) - 命令模式(Command Pattern)}
 
 
运行结果
操作
Insert:第1条
Insert:第2条
Insert:第3条
Insert:第4条
Delete:第2条
Insert:第5条
Delete:第3条
Insert:第6条
Insert:第7条
撤销4次操作
Delete:第7条 Delete:第6条 Insert:第3条 Delete:第5条
重复2次操作
Insert:第5条 Delete:第3条
撤销3次操作
Insert:第3条 Delete:第5条 Insert:第2条 


参考
http://www.dofactory.com/Patterns/PatternCommand.aspx


OK
[源码下载]




     本文转自webabcd 51CTO博客,原文链接:http://blog.51cto.com/webabcd/344545,如需转载请自行联系原作者

上一篇:JavaScript 技术篇-chrome利用ClipboardEvent写入剪切板,chrome写入剪切板不成功解决方法


下一篇:使用angularJS设置复选框的回显状态