メニューは一般にObserverパターンではなくCommand Design Patternで実装されるのはなぜですか?オブザーバとコマンドのデザインパターン、なぜメニューは一般的にコマンドパターンを使用していますか?
0
A
答えて
1
「ディスパッチング」という2つの側面があります。メニューからオプションを選択するか、ボタンをクリックしてコードを実行します。次に、実行されている実際のコードがあります。
どのUIフレームワークを参照しているのかわかりませんが、ObserverとCommandの両方のパターンが使用されています。何が起こっているのかは、MenuのケースとButtonのケースが、あなたのフレームワークによって実装されているだけで、さまざまな側面を見えるようにしているのだろうかと思います。
メニューでは異なるコマンドオブジェクトを提供しますが、コマンドを呼び出す内部ディスパッチは実際には見られません。私の推測はカバーの下にあります。イベント処理が行われている必要がありますので、オブザーバーパターンが使用中である可能性があります。それは見えません。
ボタン・ケースでは、呼び出されるコードはコマンド・オブジェクトと考えることができますが、より明確にイベントに配線するので、Observerパターンが最初に表示されます。
0
メニュー項目またはボタンでオブザーバーパターンを使用するためのユースケースを1つ見ることができます。星占い計算機があると仮定します。ユーザーは星占い生成を開始するボタンを持っています。ユーザーは計算のためにサーバーに発行されたボタンとコマンドをクリックします。後で同じボタンがサーバの状態を観察することができ、その逆もまた同様であり、状態の更新や、ボタンからの印刷および火災印刷コマンドの表示が可能である。 オブザーバー:イベントをディスパッチする必要があります。 コマンド:実行されたアクション。
関連する問題
- 1. 一般的なデザインパターンの実装のアドバイス
- 2. Javascriptブックマークレットの一般的なデザインパターンは何ですか?
- 3. 一般的なデータオブジェクトとしてプロトコルバッファを使用していますか?
- 4. railsからのシステムコマンドの呼び出し - 一般的なデザインパターン
- 5. 一般的にはマジットスタイルを使用しています
- 6. 使用して一般的な方法
- 7. なぜPythonが 'tskill'というコマンドを実行できないのですか?一般的には
- 8. なぜ我々は一般的なTとしてダブルを使用することはできません?
- 9. なぜ一般的なリストをnullableとして宣言しますか?
- 10. 一般的な目的として使用するMIMEタイプは何ですか?
- 11. イメージを一般的なリンクバックグラウンドとして使用する
- 12. PHP、JSP、ASPを使用しない一般的なハイエンドとフッタ
- 13. dataGridView1は一般的なリストに接続していますか?
- 14. 一般的なDelphiプログラミングでどのようなデザインパターンを実装していますか?
- 15. Swiftの一般的なタイプを使用している工場
- 16. スクエアリーダーを一般的なマグネットストリップリーダーとして使用できますか?
- 17. なぜgst_app_src_get_sizeは常に-1を返しますが、一般的にはうまくいっていますか?
- 18. SQL SELECTコマンドの一般的な問題
- 19. "プロトコルXは一般的な制約としてのみ使用できます"
- 20. プロトコルは一般的な制約としてのみ使用できます
- 21. すべてのレイアウトの一般的なメニュー
- 22. 一般的なフレームワークではバイトコード操作を内部的に使用するのはなぜですか?
- 23. Laravel(または一般的なPHP)のループのデータとしてクエリを使用しています。
- 24. シェイダーユニフォームの一般的な使い方は?
- 25. なぜGROUP BYはFULLTEXT INDEXに一時的に使用していますか?
- 26. アマゾンブラウザーはまだまだ一般的に使用されていますか?
- 27. 最も一般的なcassandra cqlコマンド
- 28. 一般的なunixコマンド(特にdd)のJavaライブラリですか?
- 29. nodejsを使用してPlayStoreまたはAppStoreにリダイレクトする一般的なリンク
- 30. 一般的なenumとimpl、useを使用できない
私がすぐに見ることができる1つの理由は、アクションを「元に戻す」ことができることです。 http://en.wikipedia.org/wiki/Command_pattern – davecoulter
あなたはどのようにオブザーバーパターンを使って実装できると思いますか? – sudmong
実際にボタンはオブザーバーパターンを一般的に使用しています。そのため、私は質問を逆にすると、ボタンがオブザーバーを使用し、コマンドパターンを使用しないのはなぜですか?だから、Observerパターンや他のコマンドパターンを使用するウィジェットがある理由は? –