問題タブ [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.

0 投票する
3 に答える
3633 参照

java - メメントとコマンドのデザインパターンの違いは何ですか?

私は Java でソリティア ゲームのコーディングに成功しました。そして今、私の設計の上に元に戻す/やり直しを実装するように求められました。

私の計画は、ユーザーが実行した移動のリストまたはスタックを保存することでした。ユーザーが元に戻したい場合は、1. ユーザーが元に戻すことができるかどうか (つまり、リストまたはスタックに移動があるかどうか) を確認し、2. 逆にします。保存した最後の 2 つの移動 (つまり、カードを移動した "from" 移動と、カードを移動した "to" 移動)。

やり直しの場合、ユーザーが元に戻すアクションをどれだけ下に行ったかに応じて、移動をやり直すだけです (たとえば、元に戻すを 2 回押した場合、少なくとも (リストのサイズ - 4) リストまたはスタックの下になります)。 )。

私はそれらが次のようなインターフェースで実装されると思います:

Memento または Command デザイン パターンを実装していますか、それともどちらも実装していませんか? このゲームの元に戻す/やり直しのコンテキストで 2 つのデザイン パターンがどのように見えるかを理解するのに苦労しています。私は Java OOP の初心者でもあり、デザイン パターン全般についても初心者です。

0 投票する
1 に答える
90 参照

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つの頂点で静止画を復元すると

なにか提案を?