zoukankan      html  css  js  c++  java
  • 设计模式:命令模式

    命令模式(Command):将一个请求封装为一个对象,从而使你可用不同的请求对客户经行参数化,对请求排队或记录请求日志,以及支持可撤销的操作。

    namespace CommandDesign
    {
        public abstract class Command
        {
            protected Receiver receiver;
            public Command(Receiver receiver)
            {
                this.receiver = receiver;
            }
            public abstract void Execute();
        }
        public class ConcreteCommand : Command
        {
            public ConcreteCommand(Receiver receiver) : base(receiver) { }
            public override void Execute()
            {
                receiver.Action();
            }
        }
        public class Invoker
        {
            private Command command;
            public void SetCommand(Command command)
            {
                this.command = command;
            }
            public void ExecuteCommand()
            {
                command.Execute();
            }
        }
        public class Receiver
        {
            public void Action()
            {
                Console.WriteLine("执行请求!");
            }
        }
    }
    View Code

    测试代码:

                Receiver r = new Receiver();
                Command c = new ConcreteCommand(r);
                Invoker i = new Invoker();
                i.SetCommand(c);
                i.ExecuteCommand();
    View Code
  • 相关阅读:
    SDOI2017遗忘的集合
    菜鸡的考场emacs配置
    SDOI2017苹果树
    SDOI2017硬币游戏
    都11点了为什么还没有人阿克离场
    TJOI2013数字根
    HNOI2018毒瘤
    闵可夫斯基和
    三维凸包学习小记
    灭绝树学习小记
  • 原文地址:https://www.cnblogs.com/uptothesky/p/5286293.html
Copyright © 2011-2022 走看看