• 命令模式


    // 教官,负责调用命令对象执行请求
        public class Invoke
        {
            public Command _command;
    
            public Invoke(Command command)
            {
                this._command = command;
            }
    
            public void ExecuteCommand()
            {
                _command.Action();
            }
        }
    
        // 命令抽象类
        public abstract class Command 
        {
            // 命令应该知道接收者是谁,所以有Receiver这个成员变量
            protected Receiver _receiver;
    
            public Command(Receiver receiver)
            {
                this._receiver = receiver;
            }
    
            // 命令执行方法
            public abstract void Action();
        }
    
        // 
        public class ConcreteCommand :Command
        {
            public ConcreteCommand(Receiver receiver)
                : base(receiver)
            { 
            }
    
            public override void Action()
            {
                // 调用接收的方法,因为执行命令的是学生
                _receiver.Run1000Meters();
            }
        }
    
        // 命令接收者——学生
        public class Receiver
        {
            public void Run1000Meters()
            {
                Console.WriteLine("跑1000米");
            }
        }
    
        // 院领导
        class Program
        {
            static void Main(string[] args)
            {
                // 初始化Receiver、Invoke和Command
                Receiver r = new Receiver();
                Command c = new ConcreteCommand(r);
                Invoke i = new Invoke(c);
                
                // 院领导发出命令
                i.ExecuteCommand();
            }
        }
  • 相关阅读:
    opencv7-ml之KNN
    opencv7-ml之统计模型
    计算机视觉-sift(2)代码理解
    计算机视觉-sift(1)原理
    PRML2-概率分布
    如何高效的通过BP算法来训练CNN
    CPP2-基础部分(1)
    PRML5-神经网络(2)
    《机器学习系统设计》(2)
    《机器学习系统设计》(1)
  • 原文地址:https://www.cnblogs.com/gaocong/p/6869020.html
Copyright © 2020-2023  润新知