游戏设计模式学习笔记(2)命令模式

游戏设计模式学习笔记(2)命令模式

参考:

《设计模式与游戏完美开发》

《游戏编程模式》(https://github.com/tkchu/Game-Programming-Patterns-CN)

《图说设计模式( Graphic Design Patterns)》(https://github.com/me115/design_patterns)

【【游戏设计模式】之二 论撤消重做、回放系统的实现:命令模式】浅墨_毛星云: https://blog.csdn.net/poem_qianmo/article/details/52663057


定义

  • 将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化; 对请求排队或记录请求日志,以及支持可撤销的操作。
  • 命令模式是一种回调的面向对象实现。

类图,时序图

命令模式包含如下角色:

  • Command: 抽象命令类
  • ConcreteCommand: 具体命令类,包含命令参数,和执行命令功能
  • Invoker: 调用者,管理命令的容器,要求命令执行
  • Receiver: 接收者,封装在ConcreteCommand,真正执行功能的类对象
  • Client:客户类,产生命令,设置命令给Receiver
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

优缺点

  • 优点

    • 降低系统的耦合度。
    • 新的命令可以很容易地加入到系统中。
    • 可以比较容易地设计一个命令队列和宏命令(组合命令)。
    • 可以方便地实现对请求的Undo和Redo。
  • 缺点

    • 使用命令模式可能会导致某些系统有过多的具体命令类。因为针对每一个命令都需要设计一个具体命令类,因此某些系统可能需要大量具体命令类,这将影响命令模式的使用。

应用场景

  • 网络通信时候,客户端服务器之间数据封包传递。
  • 资源异步加载的命令队列。

应用场景

  • 网络通信时候,客户端服务器之间数据封包传递。
  • 资源异步加载的命令队列。
  • 游戏录制和回放功能。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值