私たちはこのようなデザインのオブジェクトをたくさん持っています:インターフェイスといくつかの実装、およびいくつかのオブジェクトの合成による使用。 例: FooはIFooを実装し、IBarを実装するBarオブジェクトを持っています Fooには依存関係の注入用のsetBar(IBarバー)メソッドもあります。デリゲート用のセッターはインターフェイスにあるはずですか?
私の質問は:セッターはインターフェイスにあってはいけませんか? (テストのために黙って...私はひどいです!)
私たちはこのようなデザインのオブジェクトをたくさん持っています:インターフェイスといくつかの実装、およびいくつかのオブジェクトの合成による使用。 例: FooはIFooを実装し、IBarを実装するBarオブジェクトを持っています Fooには依存関係の注入用のsetBar(IBarバー)メソッドもあります。デリゲート用のセッターはインターフェイスにあるはずですか?
私の質問は:セッターはインターフェイスにあってはいけませんか? (テストのために黙って...私はひどいです!)
ポリモーフィズムを使用している場合、つまりインターフェイスタイプでセッターを呼び出す場合は、明らかにインターフェイスにそれが必要です。
Setter注入を使用してFooにBarを注入します。 FooがBarなしでは存在できないコンテキストでは、Barにコンストラクタを挿入する方が適切です。
はさらに読む: Types of dependency injectionだけでモックとテストが良くないためのインタフェースでセッターを持つために。したがって、そのインタフェースのユーザは、そのオブジェクトのプロパティが構築後に変更可能ではないにもかかわらず、任意のコンポーネントを設定することができます。インタフェースは、オブジェクトの構築方法を明らかにしてはいけません。
はい、正式な開発者はしません。そして、私はなぜそれを理解するのが賢明だと思います。 (単にセッターを追加する前に) –