我正在开发一个用java编写的图像编辑应用程序,这当然需要撤销-重做功能。我做了什么.我创建了一个state类,它将包含一个bufferedimage,ref to prev state,ref to next State。然后形成一个状态的链表,通过单击undo和redo按钮来回遍历。所以我想要什么.我观察到bufferedimage对于一个中等(桌面)大小的图像来说占用了太多的memory...say 4MB。你们能推荐更好的方法吗?
谢谢你!!
发布于 2011-08-18 17:19:07
如果您的状态使用太多内存,则应该使用Command pattern而不是Memento pattern。
您将拥有一个UndoRedo对象的链接列表,每个对象包含的信息恰好足以运行撤消命令或重做命令。
您必须使用不同的方法来组织命令:
https://stackoverflow.com/questions/7104871
复制相似问题