Unity设计模式—命令模式(附代码)
命令模式是什么
命令模式是回调函数的面向对象替代品。它将一个请求封装成一个对象,从而让你可以用不同的请求对客户进行参数化,对请求排队或者记录请求日志以支持可以撤销的操作。
具体不展开,本篇主旨是在Unity中实现与演示命令模式,有关命令模式的详细介绍可以看Refactoring.Guru,肯定比我讲得好。
什么时候用
- 如果你需要通过操作来参数化对象, 可使用命令模式。
- 如果你想要将操作放入队列中、 操作的执行或者远程执行操作, 可使用命令模式。
- 如果你想要实现操作回滚功能, 可使用命令模式。
如:
- 制作Replay系统
- 建立撤销和重做系统
- AI命令流
- 一组操作组合成宏命令
命令模式优缺点
优点
- 把请求发送者和请求接收者进行了解耦,发送者和接收者之间不交互。
- 可以方便的设计命令队列或组合命令。
- 为Undo和Redo提供了一种设计与实现。
缺点
- 具体命令类有点多,如果没有编辑器和语言的强力支持(如你是用Lua开发),引入命令模式维护成本比较高