コンストラクタインジェクションのためにNinjectを使用して、その場でコンクリートオブジェクトを作成しています。しかし、クラスには文字列を受け入れるメソッドが含まれているシナリオがあります。文字列の値に基づいて、私は特定のクラスを取得したいと思います。具体的なクラスを返すためのファクトリクラスを作成することでこれを達成しましたが、これが最善の方法であるかどうかはわかりませんでした。助言がありますか?このシナリオに依存性注入はどのように適用されますか?
//Service class
public int GetEmployeeVacationDays(string employeeType)
{
IEmployee employee = EmployeeFactory.CreateEmployee(employeeType);
return employee.VacationDays();
}
//Factory class
public static IEmployee CreateEmployee(string employeeType)
{
if(employeeType == "Salary")
{
return new SalariedEmployee();
}
else
{
return new HourlyEmployee();
}
}
わかりましたので、私は実装しています工場出荷時のパターンがありますじゃ、はい。あなたのバインディングの例では、コンストラクタ・インジェクションにしか使用していないので、私は完全にはわかりません。私のコードはクラス内の特定のメソッドです。 – Mike
@Beavis、はい、工場のパターンは問題ありません。 –