3

イベント駆動型プログラミングモデルについて。通常、雇用主は「外部ライブラリなしでJavaでイベント駆動型プログラミングモデルをシミュレートする」という質問を提起します。簡単な質問で、デザインパターンを使って答えられると思います。

私のソリューションは、パブリッシュサブスクライブ(別名オブザーバー)チャネルとして2つのキューを配置することです。公開チャネルは、クリックなどの特定のイベントタイプを対象としたイベントを登録します。

ポーリング要素->ボタン1クリック|| ボタン1もう一度クリック|| ボタン1特定の時間をクリックします。<-パブリッシャーキュー

別のサブスクライブチャネルは、新しい公開が発生した場合にイベントリスナーを保存します。

ポーリング要素->リスナー1|| リスナー2|| -<サブスクライバキュー。

最初に公開キューにプッシュし、別の時間にポーリングして、サブスクライバーが消費できるようにします。サブスクライブはパブリッシャー要素を消費し、サブスクライバーチャネルの各要素(この場合は各イベントリスナー)に適用されます。オブザーバーデザインパターンにより、コンポーネントに依存しません。出版社は加入者について何も知りません。

このシナリオは、電子メールニュースレターの購読に似ています。

OO実装では、PublishersオブジェクトとSubscribersクラスがあります。実際には、詳細なパブリッシャーの実装と詳細なサブスクライバーの実装のキューです。また、パブリッシャークラスとサブスクライバークラスを調整するために、メディエーターデザインパターンが組み込まれています。

私のソリューションに欠陥はありますか?

4

1 に答える 1

0

いいえ、そうではありません。あなたのソリューションはかなり標準的で健全です。

特定の順序でイベントの送信を調整する必要がある場合は、基本的なイベントのオブザーバー/サブスクライバーとメディエーター。

于 2012-11-05T15:33:52.117 に答える