C#でReactiveフレームワークを使用していますが、アプリケーションワイドオブザーバ(Singleton Message Bus)を使用することが合理的な理由であるかどうか不思議です。アプリケーションの隔離されたセクションでは、それは魅力のように機能しますが、誰も悲鳴を上げる知恵を持っているなら、私は興味があります。「いいえ、あなたは思っています!アプリケーション全体のObserverは有効なソリューションですか?
テクニカルインプットと理論パターン知識は歓迎以上のものです!
C#でReactiveフレームワークを使用していますが、アプリケーションワイドオブザーバ(Singleton Message Bus)を使用することが合理的な理由であるかどうか不思議です。アプリケーションの隔離されたセクションでは、それは魅力のように機能しますが、誰も悲鳴を上げる知恵を持っているなら、私は興味があります。「いいえ、あなたは思っています!アプリケーション全体のObserverは有効なソリューションですか?
テクニカルインプットと理論パターン知識は歓迎以上のものです!
私はこれまでのC/C++アプリケーションの1つでこのようなアプローチを使用しました。それはあなたがモジュールを切り離すことができるという利点がありますが、私の経験では、それはすぐに大きなアプリケーションの問題の多くにつながる:
結論として、グローバルなメッセージバスは、小さなアプリケーションではいいアイデアですが、大きなものではありません。 1つのグローバルメッセージバスを使用してすべてのモジュールをデカップリングすることで、効果的にその逆を達成することができます。誰もが他のメンバーにリンクしているため、長期的にはアプリケーションを解くのが難しくなります。
すべてのモジュールをできるだけ独立させ、特殊なオブザーバーを使用することをお勧めします(Gang Of Fourのオブザーバーパターンを参照)。
恐ろしい!ありがとう、これは私が探していたものです。 –
このパターンは、アプリコンポーネント間の提携を減らすために広く使用されています。私はいくつかのプロジェクトでそれを使用しました。本当にとても快適で便利です。 私は一般的にパターンについて話していますが、Reactiveフレームワークでどのように実装されているのかわかりません。
"メッセージバス"について聞いたことがありません。誰かがこのトピックに関するいくつかの情報を得ることができるリンクをいくつか提供してください。 –
「私のクラスメソッドを保護するかプライベートにするべきか」というのと同じような質問です。同じ答え。 –
私はRxについて非常に興奮しているので、短いコード例に非常に興味があります。その「グローバル」オブザーバーをどのようにセットアップしたか、それをどのように使っているかの簡単な例を示すことができますか? – stakx