問題タブ [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を含むクラスがあります。graphinsert verticesget the list of verticesgraph
インターフェースvertex
インターフェースedge
graph新しい頂点を挿入し、他のメソッドは hide() とのインターフェース
(およびエッジのコレクションを格納するADTGraph実装ですが、必須ではありません)vertices
クラスMemento
クラスOriginator
インターフェースIMemento
クラスCareTakerはインターフェースを実装しますIMemento
私の疑いは、状態を保存した後に始まり、元に戻そうとするgraphと、前の状態に更新されません
graphしかし、 2つの頂点で静止画を復元すると
なにか提案を?