0

したがって、元に戻す/やり直しは通常、コマンド パターンによって実装されることがわかります。ただし、コマンドが x 回繰り返されることを意図している場合、x 回元に戻すことはユーザーにとって面倒です。

たとえば、「int num」があり、キーボードで「+」を押すと、プログラムは「++num」を実行します。ユーザーが「+」を押して num を 0 から 50 に増やした場合、ユーザーは元に戻したいのですが、ユーザーが 1 回元に戻すことができるようにするにはどうすればよいですか? num は 0 に戻ります。

一連の繰り返しコマンドを処理できるように元に戻す方法を実装するには?

前もって感謝します!

4

1 に答える 1

0

Monitored Undo Framework ( http://muf.codeplex.com ) は、操作のバッチの概念を使用してこれを行います。グループに属する一連の操作にフラグを立てて、元に戻すシステムがそれらを 1 つの作業単位として元に戻す/やり直すことができます。

さらに、ライブラリを使用すると、特定のフィールドの最初/最後の値のみを保存することで、状況を最適化できます。そうすれば、元に戻す/やり直しのロジックで 50 回の操作すべてを適用する必要がなくなります。元に戻すバッチの前の値に戻すことで、簡単に元に戻すことができます。

警告: MUF ライブラリは従来のコマンド パターンを使用しません。基礎となるドメイン モデルで発生した後の変更を追跡する、より多くの記念パターンを使用します。

真のコマンド パターンが必要な場合は、元に戻すスタックのエントリを検査するロジックを元に戻す実装に追加できる場合があります。次に、たとえば、ユーザーが「+」操作で元に戻すを押すと、スタックは元に戻す操作を開始し、スタックで「+」操作を見つけ続ける限り元に戻します。イベントをバッチ処理できなかったが、元に戻すスタックが一度に複数の操作を自動的に元に戻すようにしたい場合に、このアプローチを使用しました。

于 2011-07-01T18:24:37.680 に答える