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

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

     abstract class Command
        {
            protected Receiver re;
            public Command(Receiver re)
            {
                this.re = re;
            }
            abstract public void Execute();
        }
        class ConcreteCommand : Command
        {
            public ConcreteCommand(Receiver re):base(re)
            { }
            public override void Execute()
            {
                re.Action();
            }
        }
        public class Receiver //任意一个类
        {
            public void Action()
            {
                Console.WriteLine("执行请求");
            }
        }
        class Invoker
        {
            private Command command;
            public void setCommand(Command comd)
            {
                this.command = comd;
            }
            public void ExecuteCommand()
            {
                command.Execute();
            }
        }

    命令模式的优点:

    1.它能较容易的设计一个命令队列(invoker类中添加命令列表)

    2.在需要的情况下,可以较容易地将命令记入日志

    3.允许接收请求 的一方决定是否要否决请求

    4.容易的实现对请求的撤销和重做

    5.增加新的具体命令类很容易,不会影响其他类

  • 相关阅读:
    freeswitch录音功能
    jdk安装
    maven阿里云镜像
    idea安装
    idea新建maven项目
    tomcat安装
    idea新建maven web项目
    idea新建java项目
    webpack使用
    ACE 安装指南及示例
  • 原文地址:https://www.cnblogs.com/luyujie/p/5584457.html
Copyright © 2011-2022 走看看