【设计模式游戏完美开发】命令模式

命令模式:将请求命令封装成对象,管理并执行

命令是指一种指示某人做某事的方式,在程序上也十分常见,如:键盘按下会发出某某指令。

封装成对象是指 封装成类,类要具有命令参数 以及 执行方法,意味着在命令创建之时就已经决定好要干什么,以及交给谁做。

命令参数就是要干什么时需要的材料,执行方法就是执行者和具体的执行逻辑。

将命令封装成一个命令类之后,还需要一个命令管理器。

命令管理器简单来说就是管理命令的,可增加命令、删除命令、执行所有命令等等事情。

例如:Command命令类 ,CommandManager命令管理类

Command有一堆参数, 还有执行方法Execute()

CommandManager有一个List<Command> list;   还有AddCommand(Command)方法 以及 Execute()方法。

在外部如下使用:

Command command = new CommandA(param)

CommandManager cm = new CommandManager();

cm.AddCommand(command);

cm.Execute();

命令模式多用于项目需要将业务流程延后调用 或 需要管理其执行顺序时,就可以用命令模式来加以管理。

例如:任务队列,任务队列就是一个个命令,放进去队列里面,按优先级排序,然后执行队头的任务;而当某个已存在队列的任务不需要执行时,也可以撤销任务(从队列移除任务)。

多数情况都是可能会发生在一些比较特殊的情况,例如在Unity同一帧当中引发了10多个业务逻辑(事件),其中有几个业务逻辑是必须要控制好执行顺序的,不然表现效果会变差,那么此时就可以使用命令模式来去控制这个顺序问题了。

命令模式在C#中是十分好用的,因为有委托这个强大的助手,能把需要调用的方法保存入委托中,从而延后执行业务逻辑。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值