使用记忆命令模式快速撤消重做?

使用记忆命令模式快速撤消重做?,第1张

使用记忆/命令模式快速撤消/重做?

第三种处理撤消的常用方法。那就是在Undo对象中存储两个状态之间的差异。您可以将其作为实际的差异(例如,哪些像素已更改以及像素已更改为像素)来进行,但这可能与在每个阶段存储位图几乎一样浪费内存。

另外,您也可以使用命令模式方法,但是在存储撤消命令时,您无需存储命令的倒数,而无需重新运行命令,即,如果用户将红色值增加了十,那么撤消命令就是将其减少十。
。要撤消 *** 作,只需执行反命令即可。很难找到某些命令的反函数,例如“转换为黑白”,但是通过将基础位图与许多由命令打开或关闭的过滤器混合,您可能可以做到。

作为另一建议,请使用您提到的命令方法,但请保留上一步的位图。当用户撤消 *** 作时,立即显示上一步(n-1)中缓存的位图,然后开始计算n-2的位图,以便您准备好再次按下undo时。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5587164.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存