Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在用 java 开发一个图像编辑应用程序,当然需要撤消重做功能。我做了什么......创建了一个包含缓冲图像的 State 类,引用到上一个状态,引用到下一个状态。然后形成一个状态链表,通过点击撤销和重做按钮来回遍历。那么我想要什么....我观察到 bufferedimage 占用了太多内存...比如说 4 MB 对于中等(桌面)大小的图像。你们能提出更好的方法吗???
谢谢!!
如果您的状态使用太多内存,您应该使用命令模式而不是备忘录模式。
您将拥有一个 UndoRedo 对象的链接列表,每个对象都包含足够的信息,以便能够运行撤消命令或重做命令。
您必须以不同的方式组织命令: