【发布时间】:2010-10-16 14:20:09
【问题描述】:
我正在编写一个桌面应用程序来使用 C++ 进行矢量绘图,并考虑使用 sqlite 来支持我的撤消/重做功能。
有人使用 sqlite 来实现撤销/重做功能吗?你觉得效果如何?
澄清:
我知道堆栈方法,我什至用这种方法实现了一个应用程序。我遇到的问题是用了一段时间就很难维护了。
我使用 sqlite 的意思是,我将把我的整个内存数据结构映射到一个 sqlite 数据库中,并让 sqlite 为我做差异和修订。 如果我创建内存数据库,速度应该不是问题。
这就是我的想法,我想知道这是否可行。
【问题讨论】:
-
这似乎有点矫枉过正。正常的有界堆栈/命令模式方法有什么问题?
-
我同意皮特的观点。从基于堆栈的方法开始;如果这不能解决问题,请考虑让每个命令能够将自身序列化/反序列化到数据库。但实际上,除非您正在做一些非常奇怪的事情,否则基于堆栈的方法将削减它。