2016-08-27 23 views
0

私はSWInjectを使用してアプリケーション内の依存関係を維持し、コーディネーターパターンはロジックと依存関係を管理しています。SwInjectを中央のオブザーバーパターンと組み合わせて使用​​する

SWInjectは、アプリケーションのさまざまな部分に複数のオブザーバーを持つ集中プッシュ通知フレームワークと組み合わせて使用​​できますか?

通常、私はシングルトンクラスでそれを行いますが、それを行うことは依存性注入パターンを使用する目的を打ち破っているようです。

答えて

2

DIはgenaralの "依存関係をどのように使うのですか"から "依存関係をどのように取得するのですか"を分けようとします。ほとんどの場合、後者はオブジェクトの知識の一部であってはならない。

あなたのケースでは、ブロードキャスト/受信にオブジェクトが使用するnotification centerという事実はシングルトンですが、指定されたオブジェクトをどのように実装するかは関係ありません。

DIアプローチは、それを依存関係として渡し、他の誰かが同じインスタンスを使用している可能性のある人を心配させることです。確かに、バックグラウンドではまだシングルトンかもしれませんが、必要なときにこの事実を変更して、それを使用するオブジェクトについて何も変更することなくテストすることができます。

+0

実際には本当に良い観察です。それはバックグラウンドではシングルトンになりますが、必要に応じてこれを変更することができれば大丈夫です(別名テスト) - >クラス自体のシングルトンを初期化する –

関連する問題