問題タブ [mediator]
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.
language-agnostic - メディエーターデザインパターンをいつ使用しますか
タイトルにあるように、メディエーターデザインパターンの使用をいつ推奨しますか。また、どこで誤って使用されていると思いますか。
design-patterns - ファサード vs. メディエーター
この2パターンの違いを調べてみました。
ファサードはサブシステムへのアクセスをカプセル化し、メディエーターはコンポーネント間の相互作用をカプセル化することを理解しています。
コンポーネントは明らかにメディエーターを認識しているのに対し、サブシステム コンポーネントはファサードを認識していないことを理解しています。
現在、App.Config、SQL に保存されているユーザー設定、アセンブリ情報などの構成情報を取得する方法をカプセル化するためのファサードと、異なるウィンドウ フォーム間のナビゲーションのためのメディエーターを使用しています。
ただし、ほとんどのサイトは、メディエーターが「機能を追加する」ことを指摘しています。これはどういう意味ですか?メディエーターはどのように機能を追加しますか?
design-patterns - OCaml の Mediator デザイン パターン
OCaml (メディエーター パターン) で 2 つのクラス間の相互バインディングを達成しようとしていますが、コンパイル時にエラーが発生します。
エラー: クラス コンストラクターの同僚は 1 つの型引数を予期していますが、ここでは 0 個の型引数に適用されます。
クラス定義の ['foo] 構文に精通しているとは言えませんが、メディエーターがすべての同僚と各同僚への参照を保持できるようにするために、(無駄に) それに頼ってきました。ソースコードでのクラスの定義の重要性を克服しようとしながら、それぞれのメディエーター。同僚がメディエーターへの参照を保持できるようにするにはどうすればよいですか?
design-patterns - メディエーターパターンまたは過度の責任
私のアプリケーションには、メニューバーやツールバーなど、お互いを知る必要のあるいくつかのコンポーネントがあります。これらは両方とも、ジョブを追加または削除したり、選択されたジョブを見つけたりするためにテーブルについて知る必要があります。
そこで、guiMediator
すべてのオブジェクトに渡すというオブジェクトを作成し、そのオブジェクトを使用して相互に到達できるように、オブジェクトに登録しました。また、新しいジョブが追加されたとき、またはバックグラウンドワーカーがジョブを終了したときに、イベントを発生させる責任があります。
システムについてよく知っているので、このタイプの使用法は1つの場所で責任が大きすぎるのでしょうか、それともパターンの正しい使用法でしょうか。
java - メディエーターパターンはこの状況で機能しますか?
したがって、私の現在のプロジェクトでは、基本的に3つの主要なJavaクラスがあります。
- GUI
- インスタントメッセージング
- 計算
基本的に、完全な通信が必要であるため、GUIでプロジェクト全体を実行できるようにするのではなく、メディエーターアプローチを使用することにしました。
基本的に、メディエーターは通信をカプセル化します。私たちが遭遇した問題は、メディエーターが何かが完了したときに呼び出すための大量のメソッドを構築せずに、GUIコンポーネントを更新できるようにする方法です。
元。GUIがユーザーにログインしたいとします。メディエーターを経由してスレッドを作成し、ログインしますが、メディエーターは成功/失敗をGUIに中継し、ステータスメッセージを更新する必要があります。
もう1つの問題は、GUIを更新する必要があるが、モデレーターは必要ないということです。GUIがそのクラスのインスタンスを作成して実行できるようにするのは実用的ですか、それともすべてがメディエーターを通過する必要がありますか?
私たちの元の設計では、GUIですべてを管理していましたが、再利用性が大幅に低下しました。この場合に使用するより良い設計方法はありますか?
apache-flex - pureMVC: インターフェースの各タブに固有のメディエーター
さまざまな同様のレイヤーを切り替えるためのタブ付きインターフェイスを構築しています。各レイヤーには多数のグラフがあります。マウスでドラッグすると、グラフを再配置したり、レイヤー間を移動したりすることもできます。私の質問は、レイヤーのコンテンツ/組織を追跡するレイヤーごとに一意のメディエーターを登録するのがベストプラクティスですか、それとも 1 つの中央メディエーターですべてを追跡する必要があります。
いくつかの考慮事項:
ユーザーがアプリに戻ったときに復元できるように、レイヤーのコンテンツと組織は(データベースに)保存されます。
レイヤー自体は機能的に同一です。
ユーザーは自由にレイヤーを追加および削除できます。
ありがとう!
c# - Mediator パターンを使用した単体テスト - すべて非公開から公開
GUI オブジェクトの単体テストを容易にするためにメディエーター パターンを使用しています。
疑似コード例:
Window を作成しなくても、SomeButton が押されたときに何が起こるかを単体テストできるようになったので、これは素晴らしいことです。
私が懸念しているのは、私が非公開のメソッドを採用し、Mediator を呼び出すすべての人のために公開したことです。過去にこれを行ったことがありますが、公開しなければならない方法があまりなかったので、気にしませんでした。
私は現在、このパターンを使用するために非常に大きなクラスをリファクタリングしています。 MyMediator を作成できるユーザーや、一部のメソッドが公開されているクラスの可視性を制御できる方法があるかどうか疑問に思っています。(これは不可能かもしれませんし、必要でさえないかもしれませんが、私は尋ねようと思いました。)
(私は .NET 3.5 SP1 で C# 3.0 を使用しています)
wpf - MVVMメディエーターの複数のインスタンス
誰かがメディエーターパターンが複数のインスタンスでどのように機能するかを説明できますか?
ビュー内の私のコード:
およびViewModel内:
これは、ViewとViewModelのペアのインスタンスが1つしかない限り検出されます。
複数のインスタンスでそれを解決するにはどうすればよいですか?
wpf - WPF MVVM ダイアログの例
MVVM (Prism) を使用してウィンドウ ダイアログを表示する例はありますか? - たとえば、コマンド実行時の構成設定ウィンドウ。
私が見たすべての例は、問題のないメディエーター パターンを使用していますが、それらはすべて理想的ではないビュー モデルのビューへの参照も持っています (DataTemplates を使用しています)。
ありがとう
apache-flex - Flex PureMVC:メディエーターが登録されていません
コンポーネントは実行時に作成され、メディエーターが作成および登録されます。すべては順調です。
別のビューで、そのコンポーネントの別のインスタンスが作成されます。メディエーターは作成されますが、onRegister()は2回目に呼び出されません。これが正常かどうかはわかりませんが、正常な場合は、2回目にonRegister()を呼び出すにはどうすればよいですか?ありがとう。:)