2010-12-27 5 views
0

Aは、B、C、DオブジェクトがE、F、Gとして気にしないことを知りたいと思っているものを公開しています。サブスクリプションサービスをエミュレートするために必要なパターン

Aが何かを言うとき、B、C、Dはこの "メッセージ"を得なければなりません。

これを最もよくエミュレートするデザインパターンは何ですか?

** Tibcoを使用せずにTibcoを使用するにはどうすればよいですか?

+0

代わりに何を使用しようとしていますか?つまり、標準のJavaアプリケーション、Webアプリケーション、本格的なJ2EEアプリケーションなどです。 – jbx

+0

標準のJavaアプリケーションです。オブジェクトの方向に向かって数字のストリームがあるとします。彼らは何に関係なく来ている。同時に、複数の「リスナー」を持たなければなりません(リスナーはすべて同時にデータを取得することをお勧めします)。入ってくるデータによっては、リスナーの中にはないものがあります。サポートする数が10未満の場合、一部のリスナーがそれに対処します。他の場合は、20以上の数の場合にのみ実行されます。 – JAM

答えて

1

通常のJ2SEアプリケーションの場合、イベントのイベントおよびサブスクライバの発行者が同じプロセス空間内のオブジェクトである場合、Observerパターンになります。

通常、サブスクライバは、addListener()などの特定のメソッドを呼び出して特定のインターフェイスを実装することによって、イベントを待機することをパブリッシャに通知します。

だからあなたの例では、我々は1つの方法onNumberEvent(int型の数)

を持つインタフェースNumberEventListenerを作成すると言うことができますあなたのリスナーは、すべてのNumberEventListenerを実装し、あなたの出版物でのaddListener()を呼び出します。

フィルタリングは、パブリッシャ側またはリスナー側のどちらでも適用できます。あなたの実装ではaddListener()メソッドをaddListener(NumberEventListener listener、int min、int max)にすることができ、リスナーはminとmaxの間にのみ呼び出されます。しかし、これは典型的な実装ではありません。なぜなら、パブリッシャーコードをより複雑にし、実際に柔軟にすることができないからです。

このような例では、通常、リスナーはそれぞれのイベントをすべて受信し、関心のないイベントは破棄しますが、実際の実際のシナリオには少し依存します。

リスナーが「同時に」または順次通知されるかどうかは、リスナーがイベントのパブリッシャによって順次または個別のスレッドで呼び出されるかどうかによって異なります。

0

パブリッシュ - サブスクライブのメッセージ交換パターンはどうですか? はJavaでは、JMSは、一般的に、このようなメッセージングサービスを提供していhttp://www.eaipatterns.com/PublishSubscribeChannel.html

はまた、エンタープライズ統合パターンでチャンネルをパブリッシュ/サブスクライブと呼ばれます。

+0

これは、パターンが呼び出される内容です。パブリッシュ/サブスクライブ。 これは、このパターンを適用したいコンテキストに依存しています...それはJMSですか? – jbx

+0

これは関連していませんが、私はMacがSOAやエンタープライズサービスバス関連のものに興味がないと信じています...彼はプログラミングデザインパターンを必要としています – lisak

+0

@lisak、これは小さなもの2つのエンタープライズアプリケーションを一緒に接続するために使用できます。パターンはそうです。 JMSは単なる実装の1つです。 (これはちょっとした試験問題だと思う) – jbx

0

オブザーバーパターン。

また、メッセージの内容に基づいていくつかのオブジェクトが何らかの処理を行うと言われるように、フィルタチェーンパターンが適用される場合があります。それは私にとってフィルターチェーンのように聞こえる。

関連する問題