私の現在のアプリケーションでは、オブザーバパターンを実装するために 'selfmade' Observableクラスを使用しています。オブザーバー(インターフェースを実装する)は、特定のイベントを聴くことができます。IoCコンテナを使用する際にオブザーバーを登録する場所は?
私はIoCコンテナを使用するようにプロジェクトをますます切り替えていますが、オブザーバをオブザーバブルに登録するのにコード内に適切な場所を見つけることができません。
私が見るこれを行う方法は次のとおりです。
A)観測者に観測可能に注入します。
コンストラクタは実際の作業を行うべきではありませんが、メソッド注入またはフィールド注入を行っても、オブザーバを観測可能なものに結合します。これは逆の場合も同様です。
B)観測可能なファクトリを作成し、それを実行します。
この場合、observableの作成は、いくつかのオブザーバの実装に依存します。
C)ファクトリでオブザーバを作成し、そこに作成します。
カップリングに関してはこれが最善のようですが、DRYに関しては悪いことが分かります。いくつかのケースでは、工場はオブザーバーのフィールドとコンストラクターのコピーであり、オブザーバーブルと登録のための1行のコードが追加されています。
この登録をきれいに処理する方法はありますか?そうでない場合は、他のものよりも特定の方法を使用する説得力のある議論がありますか?