JavaやC#のコマンドパターンでアプリケーションデザインの "元に戻す"機能を実現する方法を理解できますか?どんな説明もありがたいです。コマンドパターンは元に戻すことができますか?
3
A
答えて
2
元に戻す機能を使用するには、最後のn個のユーザー操作を保存する必要があります。通常、ユーザーアクションは単に関数呼び出しとなります。したがって、関数を呼び出すのは非常に難しいです。元に戻すことができる方法でそれを保存することはさらに困難です。
オブジェクトにユーザーアクションを抽象化することで、簡単にデータ構造(通常はStack
)に、これらのオブジェクトのセットを置くことができ、あなたがオブジェクトの上Undo
方法を置けばあなただけの構造を通過し、Undo
を呼び出しますユーザーがアンドゥ操作を要求すると、メソッドが呼び出されます。
コマンドはすでに操作(ユーザーまたはその他)をカプセル化するように設定されているので、元に戻す機能を構築するための優れた出発点です。
+0
ニース!ありがとう! :D – miiworld2
関連する問題
- 1. RichTextBoxを元に戻すと元に戻すことができますか?
- 2. EGitはマージコミットを元に戻すことはできますか?
- 3. Javersでコミットを元に戻すことはできますか?
- 4. Firebaseのリストを元に戻すことはできますか?
- 5. UIModalTransitionStyleCoverVerticalを元に戻すことはできますか?
- 6. チェックアウトを元に戻すことはできますか?
- 7. 元に戻す/やり直しでコマンドパターンの履歴を移動しますか?
- 8. TextChangedで元に戻すことができません
- 9. TWebBrowserは元に戻すかやり直すことができます
- 10. これはコマンドパターンですか?
- 11. ProgressBarを元に戻すことはできません。
- 12. ダッシュボードからアプリを元に戻すことはできますか?
- 13. Amazon Kinesis Analyticsでジオコードデータを元に戻すことはできますか?
- 14. ipythonシェルでやり直し/元に戻すことはできますか?
- 15. youtube APIでorderbyの結果を元に戻すことはできますか?
- 16. ストアでSencha Touch Card Layoutを元に戻すことはできますか?
- 17. 私はunstaged変更とブランチを削除 - 私はこれを元に戻すことができますか?
- 18. javaのfile.delete()関数を元に戻すことはできますか?
- 19. tf.exe vc merge/discardコマンドを元に戻すことはできますか?
- 20. ブラウザ(クロム)がクラッシュしたときに編集者を元に戻すことはできますか?
- 21. コミットしたことがない場合、 'git reset -hard HEAD'を元に戻すことはできますか?
- 22. このコードはどのように元に戻すことができますか? (再帰)
- 23. コマンドパターン元に戻す/やり直し:私のアプローチに問題はありますか?
- 24. JqueryのUI、どのように私はdraggableは常に元に戻すことができますか?
- 25. メモ帳++、保存前に元に戻すことはできません
- 26. 除外モジュールの効果を元に戻すことができません
- 27. stdoutを元に戻すことができません(端末のみ)
- 28. Wordはこの操作を元に戻すことはできません。続けたいですか?
- 29. ES5でObject.freezeの効果を元に戻すことはできますか?私はこれを行うたら
- 30. コマンドパターンはどのようにラムダ式に置き換えることができますか?
@shmosel *多分もっと深い複製がこれには当てはまるが、私はこの質問が実際には得られていないと思う。 – BradleyDotNET
@BradleyDotNETあなたはどうしていると思いますか? – shmosel
@shmoselなぜコマンドパターンはUndoを可能にするのですか?Undo(ネストされた複製への答えはこれに触れますが、そのすべてがうまくいくわけではありません。 – BradleyDotNET