問題タブ [memento]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - メメントとコマンドのデザインパターンの違いは何ですか?
私は Java でソリティア ゲームのコーディングに成功しました。そして今、私の設計の上に元に戻す/やり直しを実装するように求められました。
私の計画は、ユーザーが実行した移動のリストまたはスタックを保存することでした。ユーザーが元に戻したい場合は、1. ユーザーが元に戻すことができるかどうか (つまり、リストまたはスタックに移動があるかどうか) を確認し、2. 逆にします。保存した最後の 2 つの移動 (つまり、カードを移動した "from" 移動と、カードを移動した "to" 移動)。
やり直しの場合、ユーザーが元に戻すアクションをどれだけ下に行ったかに応じて、移動をやり直すだけです (たとえば、元に戻すを 2 回押した場合、少なくとも (リストのサイズ - 4) リストまたはスタックの下になります)。 )。
私はそれらが次のようなインターフェースで実装されると思います:
Memento または Command デザイン パターンを実装していますか、それともどちらも実装していませんか? このゲームの元に戻す/やり直しのコンテキストで 2 つのデザイン パターンがどのように見えるかを理解するのに苦労しています。私は Java OOP の初心者でもあり、デザイン パターン全般についても初心者です。
java - Memento が Java で元に戻すと状態を更新しない
をgraph
含む がvertices
ありedges
、に使用する必要があるoriginator
を含むクラスがあります。graph
insert vertices
get the list of vertices
graph
インターフェースvertex
インターフェースedge
graph
新しい頂点を挿入し、他のメソッドは hide() とのインターフェース
(およびエッジのコレクションを格納するADTGraph
実装ですが、必須ではありません)vertices
クラスMemento
クラスOriginator
インターフェースIMemento
クラスCareTaker
はインターフェースを実装しますIMemento
私の疑いは、状態を保存した後に始まり、元に戻そうとするgraph
と、前の状態に更新されません
graph
しかし、 2つの頂点で静止画を復元すると
なにか提案を?