0

destop アプリケーションを構築する必要があります。
オペレーターはショップのリストを操作します。彼にはショップをフィルタリングするメイン ウィンドウがあり、いくつかの追加ウィンドウがあります: マップ (ショップの場所を表示し、リストから選択したショップをマップ上で太字でマークします)、ストック フォーム (選択したショップの在庫を外部サービスに問い合わせます)。フォームは同時に開いたり、メイン フォーム以外の一部を非表示にしたりできます。

可能な実装:
各フォームをアプリケーションのスタンドアロン モジュールと見なします。なんで?フォームの数が増えることを期待しています。たとえば、ショップでの最新の販売のための新しいフォーム、店長とのチャットのための別のフォーム。

質問:
モジュール間の通信を整理するにはどうすればよいですか?
今のところ、共有バスを使用するアイデアがあり、モジュールはそれを介してメッセージを送受信できます。
代替手段はありますか?
このバスの実装はありますか、それともパブリッシャー/サブスクライバー パターンに基づく単純な実装で十分ですか?

4

1 に答える 1

1

まず、モジュールを分離しておく必要があります。そうしないと、モジュール間の依存関係が非常に大きくなります。
これを実現するには、EventAggregator 構造を使用することをお勧めします。名前はイベントのように見えますが、実際には pub/sub を管理するためのバス構造です。

EventAggregator パターン フォームに関する情報は、こちら にあります

.NET の世界には、この機能を提供するオープンソース API ( Prismという名前) があります。ここから Prism ドキュメントの Event Aggregation セクションを読み、ソース コードを掘り下げることを強くお勧めします。

現在、互いに完全に分離されたさまざまなモジュール (他のモジュールのインスタンス/参照を認識しているモジュールはありません) を含み、Prism API を介して通信する Silverlight アプリケーションを開発しています。

于 2013-02-08T15:16:58.847 に答える