我正在制作一个绘图应用程序,并且我已成功实现了撤消重做功能。但是现在我想将每个动作中的图像存储到堆内存中,但是OutOfMemory
会崩溃。
所以我需要专业应用程序的一些说明。专业应用程序在绘制时如何存储操作?
答案 0 :(得分:1)
您正在搜索“命令设计模式”。
参考What is the Action Design Pattern?
或https://sourcemaking.com/design_patterns/command
或更一般地说:Google it
命令对象应包含有关已执行操作的数据
在某些情况下,你需要额外的数据来进行撤销操作(例如,当在一堆像素上绘制红色方块时,你需要保存那些像素(仅限同一层),这会要求你执行不同的操作每个操作,有些需要整个图像,有些需要特定的图层,有些可以不保存任何内容(例如新图层)。