命令模式它允许你将请求(命令)封装为一个对象,从而使你可以参数化不同的请求、队列或记录请求日志,以及支持可撤销的操作。

什么是可撤销?
在命令模式中,每个命令都是一个独立的对象,它们封装了请求的参数和执行逻辑。通过将每个命令封装为一个对象,我们可以轻松地实现可撤销的操作。

实现可撤销的操作有两种基本思路:

  • 补偿式或反操作式:在执行命令之前,先保存该命令的状态,然后在需要撤销操作时,通过执行与原始命令相反的操作来撤销。例如,如果原始命令是加法运算,那么撤销操作就是减法运算。
  • 存储恢复式:在执行命令之前,先保存该命令的状态,然后在需要撤销操作时,直接恢复到该命令执行前的状态。
    存储恢复式是不是和备忘录模式类似?

Example