これはコンストラクター注入として知られており、Ninject や StructureMap などの依存性注入ツールの基礎として使用されます。オブジェクトの疎結合を可能にします。
基本的に、使用してオブジェクトのインスタンスを作成する必要があるときはいつでもnew、そのオブジェクトの具体的な実装に自分自身を密接に結び付けています。これは、テストが不可能ではないにしても、物事を難しくする可能性があります。
void MakeBacon()
{
var smokey = new Bacon();
}
コンストラクターや依存性注入などの注入方法を使用することで、新しいインスタンスを作成する必要がなくなり、代わりに注入されるため、疎結合になります。
void MakeBacon(IBacon smokey){
// Make bacon here.
}
これは、コンストラクター注入を説明するスタック交換に関する良い答えです
コンストラクタインジェクションとは?
そして、これはコンストラクターインジェクションに関するマイクロソフトの記事です
コンストラクター インジェクションのオブジェクトに注釈を付ける