这篇文章给大家分享的是有关java设计模式中的命令模式有什么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

成都创新互联公司专注为客户提供全方位的互联网综合服务,包含不限于做网站、网站建设、武进网络推广、微信小程序定制开发、武进网络营销、武进企业策划、武进品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;成都创新互联公司为所有大学生创业者提供武进建站搭建服务,24小时服务热线:13518219792,官方网址:www.cdcxhl.com
命令模式,将一个请求封装为一个对象,从而使得可以用不同的请求进行参数化,对请求排队或者记录请求日志以及支持可撤销的操作。
命令模式是对命令进行封装,由调用者发起命令请求,接收者执行请求。
当我们调用时,执行的时序首先是调用者类,然后是命令类,最后是接收者类。也就是说一条命令的执行被分成了三步,它的耦合度要比把所有的操作都封装到一个类中要低的多, 而这也正是命令模式的精髓所在:把命令的调用者与执行者分开,使双方不必关心对方是如何操作的。
基本结构:
Execute 方法用来执行命令来看一个示例:
public class Receiver{public void Action(){Console.WriteLine("Action in receiver");}}public abstract class Command{protected readonly Receiver Receiver;protected Command(Receiver receiver) =>Receiver = receiver ?? throw new ArgumentNullException(nameof(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){_command = command;}public void ExecuteCommand(){_command.Execute();}}var receiver = new Receiver();var command = new ConcreteCommand(receiver);var invoker = new Invoker();invoker.SetCommand(command);invoker.ExecuteCommand();// another samplevar barbecuer = new Barbecuer();var waiter = new Waiter();waiter.SetOrder(new BakeChickenWingCommand(barbecuer));waiter.SetOrder(new BakeMuttonCommand(barbecuer));waiter.SetOrder(new BakeMuttonCommand(barbecuer));var willCancelOrder = new BakeMuttonCommand(barbecuer);waiter.SetOrder(willCancelOrder);waiter.CancelOrder(willCancelOrder);waiter.Notify();
感谢各位的阅读!关于“java设计模式中的命令模式有什么用”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!