设计模式之命令模式

来源:互联网 发布:apache jmeter 3.2 编辑:程序博客网 时间:2024/05/21 22:24

(1)定义
这里写图片描述
(2) 代码示例
// 命令抽象类
public abstract class Command // 含有抽象方法的类必须是抽象类,抽象类可以不含抽象方法
{
// 命令接受者成员
protected Receiver _receiver;
public Command(Receiver receiver) // 构造函数给_receiver 初始化赋初值
{
this._receiver = receiver;
}
public abstract void Action(); // 抽象的做什么事的方法
}

// 具体指令 去干什么 (玉皇大帝下达命令)public class ConcreteCommand : Command{    public ConcreteCommand(Receiver receiver)        : base(receiver)    {    }    public override void Action() // 重写抽象方法    {        _receiver.AcceptTask();        //throw new NotImplementedException();    }}// 调用命令执行要求 public class Invoke  // 太白金星执行玉皇大帝的命令{    public Command _command;    public Invoke(Command command)    {        this._command = command;    }    public void ExecuteCommand()    {        _command.Action();    }}public class Receiver   // 命令接受者  孙悟空接受邀请{    public void AcceptTask()    {        Console.WriteLine("俺老孙准备去天庭烤羊肉串啦!"); // 接受命名干什么事    }}调用方法:   static void Main(string[] args)    {        Receiver r = new Receiver();//  孙悟空接受         Command c = new ConcreteCommand(r); // 玉帝下达命令                Invoke i = new Invoke(c); // 太白金星执行命令        i.ExecuteCommand();        Console.ReadKey();    }
0 0
原创粉丝点击