問題タブ [command-pattern]

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 投票する
13 に答える
50036 参照

c# - コマンド パターン : コマンドにパラメータを渡すには?

私の質問は、次の抽象化 (C# コード) があるコマンド パターンに関連しています。

アプリケーションからエンティティを削除することを目的とした、単純な具体的なコマンドを見てみましょう。Personたとえば、インスタンス。

DeletePersonCommand実装する がありますICommand。このコマンドは、メソッドが呼び出されPersonたときに削除するために、パラメータとして削除する必要があります。Execute

パラメータ化されたコマンドを管理する最良の方法は何ですか? コマンドを実行する前に、コマンドにパラメーターを渡す方法は?

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

command-pattern - コマンドパターン:クライアントと呼び出し元

コマンドパターンの場合:

クライアントの参加者が呼び出し側の参加者と同じクラスであってはならないのはなぜですか?クライアント参加者と呼び出し側参加者が同じクラスになる可能性があるシナリオはありますか?

0 投票する
2 に答える
2418 参照

design-patterns - コマンド パターンを使用してメニューの複雑さを軽減するにはどうすればよいですか?

4 つのボタンがあり、それぞれに異なることをさせたいとします。どのボタンが押されたかに基づいて異なることを行う大きな switch ステートメントは必要ありません。また、ボタンのクリックごとに個別のメソッドも必要ありません。コマンドパターンはこれを解決する良い方法ですか?

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

design-patterns - 無名関数はコマンド パターンを実装する良い方法ですか?

私はこのパターンにかなり慣れていません...

0 投票する
9 に答える
11062 参照

design-patterns - ステータスを返すコマンドパターン

コマンドパターンに関連して、設計について話し合ったことがあります。私の仲間は、.execute() メソッドが呼び出された後、コマンド オブジェクトがステータス (成功、失敗、およびその理由) を返すべきではないと述べました。その理由は、コマンドには状態が含まれていてはならないため、コマンドが実行されるかどうかを気にする必要がないからです。ただし、コマンドが期待どおりの効果をもたらしたかどうかは、呼び出し後に確認する必要があります。彼が主張したもう 1 つのポイントは、ギャング オブ フォーでは、コマンド パターンがこのケース (状態を返す) を示さないということでした。

私は反対の点を主張しました。GoF はこのケースを提示しませんが、必要に応じてパターンをモデル化できます。コマンドが失敗した場合、呼び出し元のクライアントはステータスの証明を受け取り、最終的に適切な反応を展開する必要があります。アクションが成功したかどうかをクライアントに確認させることにより、エラーが発生しやすく、重複したコードが生成されました。さらに、コマンドが結果を生成する場合があります (たとえば、プロットに行を追加するコマンドは、何らかの形でクライアントに返す行 ID を持っています)、状態のないコマンドを持っているふりをすることは、データモデルから新しいオブジェクト識別子を「釣り上げる」。

最終的に、ステータスを返さず、新しく作成されたオブジェクトの ID をコマンド オブジェクトに保持するという妥協点に達し、アプリケーションはとにかくうまく機能しましたが、あなたの意見も知りたいと思っています。

0 投票する
15 に答える
34332 参照

java - Java の if ステートメントの長いリスト

申し訳ありませんが、これに答える質問が見つかりません。他の誰かが以前に提起したことはほぼ確実です。

私の問題は、組み込みデバイスを実行するためにいくつかのシステム ライブラリを作成していることです。無線ブロードキャストを介してこれらのデバイスに送信できるコマンドがあります。これはテキストでのみ実行できます。システムライブラリ内には、次のようなコマンドを処理するスレッドがあります

問題は、多くのコマンドがすぐに制御不能になることです。外を見るのは恐ろしく、デバッグするのは苦痛で、数か月で理解するのは気が遠くなるようなものです。

0 投票する
2 に答える
5081 参照

c# - コマンドパターン:複数のコマンドを順番に実行する

一連のコマンド実行を発行したいのですが、前のコマンドが成功した場合のみです。現在、コマンドが成功したか失敗したかを示すイベントをコマンドオブジェクト内で発生させています。私はこれを使用して実行を制御していますが、エレガントではありません。

例:

これは機能しますが、不器用で直感的ではありません。Execute()でブール値を返して、成功または失敗を示すことができますが、それは同じパスに沿っています。失敗したときに例外をスローすることができます。これにより、コードがよりクリーンになる可能性がありますが、やり過ぎになる可能性があります。

助言がありますか?

0 投票する
4 に答える
452 参照

java - Java 設計パターン

オブジェクトのマップを持つアプリケーションを設計しようとしていIActionます。各IActionオブジェクトには、IAction IAction.processAction()その中に含まれる知識を実行するメソッドがあります。これにより、Web サービスなどを呼び出すデータベースにクエリを実行できます。各コントロールの実行後、次のインスタンスIActionに送信されます。IAction

アプリケーションが起動するとMap、正しい実行順序になるマップが含まれます。IntegerタイプのキーMapは、実行が実行される順序です。 IAction.processAction()制御をマップの最後にジャンプしIActionたり、まとめて停止したりできます。

頭の中でコードを視覚化することができ、これを支援するためにいくつかの行を書きました。この種の処理に簡単に役立つデザインパターンを探しています。Command パターンがこの役割に適しているかどうかはわかりません。

誰かが、どのパターンが法案に合っているかどうかを教えてくれることを望んでいました.

0 投票する
2 に答える
223 参照

java - 標準の入力ストリームを読み取るメソッドからmain()に戻ることができません

私は基本的に、標準の入力ストリームからユーザー入力を読み取るメソッドから戻ろうとしています。ユーザーにはアプリケーションを終了するオプションがあるので、私はこの終了を行うための最良の方法を見つけようとしています。理想的には、私は戻って終了することができbegin()、それによってアプリケーションを終了することができmain()ます。

メインロジックはaMachine、次のメソッドを使用してユーザーが特定のコマンドを実行するときに実行されます。

繰り返しますが、問題は、ユーザーがコマンドQまたはqを入力した後、アプリケーションを終了する方法です。quitコマンドは次のようになります。

前の質問のアドバイスに従って、アプリケーションを終了するために、main()に戻り、基本的にmain()を完了させようとしています。このようにして、の使用を避けますがSystem.exit(0)、それでも問題ありません。

したがって、この例では、ユーザーからQまたはqを受け取ったときに呼び出されるクラスのメソッドにreturnステートメントがあります。ただし、quitコマンドを実行すると、ループから戻ったり、から戻ったり、戻ったりする代わりに、制御フローがCommandQuitのメソッド内に応答することはありません。executeCommandQuitbegin()while(true)begin()main()return;execute

私の例で欠けているものはありますか?おそらく、何かが非常に明白であるため、現時点ではそれを見ることができません。助けてくれてありがとう。