我正在开发一个java中的图像编辑应用程序,当然需要undo-redo功能。 我做了什么.... 创建了一个State类,它将包含一个bufferedimage,ref为prev state,ref为next状态。然后形成一个链接的状态列表,通过点击撤消和重做按钮来回遍历。 那么我想要什么.... 我观察到bufferedimage占用了太多的内存...比如说中等(桌面)大小的图像就说4 MB。你们可以建议一个更好的方法吗?
谢谢!
答案 0 :(得分:4)
如果您的州使用太多内存,则应使用Command pattern代替Memento pattern。
您将拥有一个UndoRedo对象的链接列表,每个对象都包含足够的信息,可以运行撤消命令或重做命令。
您必须采用不同的方式来组织命令: