一步一坑

设计模式- 命令模式(Command Pattern)

2019-05-04  本文已影响0人  易兒善

定义

命令模式的目的是解除命令发出者和接收者之间的紧密耦合关系,使二者相对独立,有利于程序的并行开发和代码的维护。命令模式的核心思想是将请求封装为一个对象,将其作为命令发起者和接收者的中介,而抽象出来的命令对象又使得能够对一系列请求进行操作,如对请求进行排队,记录请求日志以及支持可撤销的操作等。

C#例子

    public abstract class Command
    {
        public abstract void Excute(Receiver receiver);
    }

    public class CreateOrderCommand : Command
    {
        public override void Excute(Receiver receiver)
        {
            Console.WriteLine("创建单据完成!");
        }
    }
    public class ChangeStockCommand : Command
    {
        public override void Excute(Receiver receiver)
        {
            Console.WriteLine("扣减库存完成!");
        }
    }

    public class Receiver
    {
    }

    public class Invoker
    {
        private IList<Command> _commands = new List<Command>();

        public Invoker AddCommand(Command command) {
            _commands.Add(command);
            return this;
        }

        public void Excute(Receiver receiver) {
            foreach (var command in _commands) {
                command.Excute(receiver);
            }
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            Receiver receiver = new Receiver();
            new Invoker()
                .AddCommand(new CreateOrderCommand())
                .AddCommand(new ChangeStockCommand())
                .Excute(receiver);
        }
    }

命令模式参与者:

命令模式适用情形:

命令模式优点:

其他

源码地址

dotnet-design-patterns

其他设计模式

23种设计模式

上一篇 下一篇

猜你喜欢

热点阅读