注入する必要がある依存関係が 10 個あり、コンストラクターに 10 個のパラメーターを入れたくない場合、どの注入パターンを使用すればよいですか?
public class SomeClass
{
private IDependency1 _dependency1;
private IDependency2 _dependency2;
private IDependency3 _dependency3;
//...
}
セッターメソッドインジェクションを使用する必要がありますか?
public class SomeClass
{
private IDependency1 _dependency1;
private IDependency2 _dependency2;
private IDependency3 _dependency3;
//...
[Inject]
public void SetDependency1(IDependency1 dependency1)
{
_dependency1 = dependency1;
}
//...
}
それともプロパティ注入?
public class SomeClass
{
[Inject]
public IDependency1 Dependency1 { private get; set; }
[Inject]
public IDependency2 Dependency2 { private get; set; }
[Inject]
public IDependency3 Dependency3 { private get; set; }
//...
}
Ninject wiki によると、上記のようなプロパティのみを書き込むことは悪い習慣と見なされますが、コードが少ないだけで、上記のセッター メソッド インジェクションと同じではありませんか?
このシナリオでは、どのパターンが最も理にかなっていますか?