0

ウィキペディアから:「パブリッシュ/サブスクライブ(またはpub / sub)は、メッセージの送信者(パブリッシャー)が特定の受信者(サブスクライバー)にメッセージを送信するようにプログラムされていないメッセージングパラダイムです。むしろ、パブリッシュされたメッセージは、知識がなくてもクラスに特徴付けられます。 (もしあれば)どのようなサブスクライバーがいる可能性がありますか?」

送信者が特定の受信者にメッセージを送信するようにプログラムされてはならない理由を理解できます。しかし、なぜ公開されたメッセージは、サブスクライバーの知識を持たないクラスでなければならないのでしょうか。

メッセージングシステム自体が設置されると、ソフトウェアの進化に伴って通常変化するのは、送信されるメッセージ、発行者、および受信者であるように思われます。メッセージをサブスクライバーから分離しておくことは、サブスクリプションモデルも変更される可能性があることを意味しているようです。これが理由ですか?また、これは現実の世界で発生しますか?

これは基本的な質問かもしれませんが、私はこのパラダイムを理解しようとしています。あなたの返信は非常に高く評価されています。

4

2 に答える 2

1

それは、関心の分離、インターフェースの順守、および分離に関するものです。なぜ彼らは彼らの加入者の知識を必要とするだろうと思いますか?

掲示板にメッセージが投稿されます。トピックの異なる掲示板が複数あります。読者がいない可能性があります。毎日来て、興味のあるトピックについてボードをチェックする読者(購読者)がいるかもしれません。それらすべてを読む10,000人の読者がいるかもしれません。

メッセージが読者が知っていると期待される言語で書かれている限り、なぜポスター(出版社)またはメッセージ自体が購読者について何か他のことを知る必要があるのでしょうか?

メッセージには、受信者がメッセージに使用するインターフェース/契約の知識があると思いますが、それだけです。

このモデルでは一方向の情報フローも可能になっているようです...サブスクライバーについて何かを知るには、双方向の情報フローが必要です。

于 2010-05-25T22:11:06.797 に答える
1

ルールは絶対的なものではないと思いますし、購読者の知識を持ったメッセージが役立つ状況を見つけられれば、誰もあなたが間違っていると言うことはないと思います(彼らはあなたに間違っていると言うかもしれません)ただし、より良い方法です)。

ただし、スケーラビリティと下位互換性は、メッセージがサブスクライバを認識していることによって直接影響を受けることに注意してください。

互換性に関しては、新しいプロセスがメッセージをサブスクライブしたい場合はどうなりますか?メッセージを知らせる責任は誰にありますか(これはデフォルトで発行者になります)?そして、この新しい要件は、将来のサブスクライバーを認識しないため、将来の消費のために過去のメッセージを保存することをどのように排除しますか。

スケーラビリティに関しては、メッセージシステムが普及し、全員とその母親がアプリのさまざまなサブスクライバー(Twitterなど)を開発し始めるとどうなりますか?1000回(サブスクリプションクライアントごとに1つ)送信される各メッセージ、または1つのはるかに大きなメッセージを送信する各メッセージをどのように処理しますか?これにより、SMSなどの他のテクノロジを使用したり、信頼性の高い伝送テクノロジの遅延を増やしたりすることができなくなる可能性があります。

おそらく、頭痛を避けるための方法は、今後さらに続くと言われています。

于 2010-05-25T23:37:38.040 に答える