22
元に戻すエンジンのデザインパターン
土木工学アプリケーション用の構造モデリングツールを書いています。建物全体を表す1つの巨大なモデルクラスがあります。これには、カスタムクラスでもあるノード、線要素、荷重などのコレクションが含まれます。 モデルを変更するたびにディープコピーを保存する元に戻すエンジンをすでにコーディングしています。さて、私は別の方法でコーディングできるかどうか考え始めました。ディープコピーを保存する代わりに、各モディファイアアクションのリストを、対応するリバースモディファイヤとともに保存することもできます。現在のモデルにリバースモディファイヤを適用して元に戻したり、モディファイヤをやり直したりできるようにしました。 オブジェクトのプロパティなどを変更する単純なコマンドをどのように実行するか想像できますが、複雑なコマンドはどうでしょうか。新しいノードオブジェクトをモデルに挿入し、新しいノードへの参照を維持するいくつかの線オブジェクトを追加するようなものです。 それを実装するにはどうすればよいですか?
117
design-patterns
undo