私はC++でベクター描画を行い、sqliteを使用して元に戻す/やり直し機能をバックグラウンドさせるデスクトップアプリケーションを作成しています。元に戻す/やり直し機能のためにsqliteを利用するには?
誰かが元に戻す/やり直し機能のためにsqliteを使用していますか?どのようにあなたのために働くのですか?
明確化:
私は、スタックのアプローチを知っていたが、私もそのアプローチの1つのアプリケーションを実装しています。私が遭遇した問題は、しばらくしても維持するのが難しくなるということでした。
私がsqliteを利用することで意味していたことは、メモリ内のデータ構造全体をsqliteデータベースにマップし、sqliteでdiffとリビジョンを実行させることです。 メモリ内のデータベースを作成する場合、速度は問題ではありません。
それはアイデアだったし、それがうまくいくかどうかは疑問だった。
これは過度のようです。通常の有界スタック/コマンドパターンのアプローチで何が問題になっていますか? –
http://c2.com/cgi/wiki?AbstractionInversion –
私はピートに同意します。スタックベースのアプローチから始めましょう。それが切断されない場合は、各コマンドにDBにシリアル化/デシリアライズする機能を与えます。しかし、実際には、あなたが何か本当に奇妙なことをやっていない限り、スタックベースのアプローチ*はそれをカットします。 –