저는 이것이 IoC 컨테이너를 사용하기 시작한 것이므로 어리석은 질문 인 경우 사과드립니다.IoC 컨테이너가 공장의 사용을 대체합니까
나는 응용 프로그램
internal static class StaticDataHandlerFactory
{
public static IStaticDataHandler CreateHandler(StaticDataUpdate staticDataUpdate)
{
if (staticDataUpdate.Item is StaticDataUpdateOffice)
{
return new OfficeUpdateHandler();
}
if (staticDataUpdate.Item is StaticDataUpdateEmployee)
{
return new EmployeeUpdateHandler();
}
if (staticDataUpdate.Item == null)
{
throw new NotImplementedException(
string.Format("No static data provided"));
}
else
{
throw new NotImplementedException(
string.Format("Unimplemented static data type of {0}", staticDataUpdate.Item.GetType().FullName));
}
}
}
그것은 기본적으로 입력 데이터를 처리하기위한 올바른 전략을 반환하는 간단한 공장에 다음과 같은 코드가 있습니다.
IoC 컨테이너를 사용하면 이와 같은 코드를 제거 할 수 있습니까? 즉, 입력 매개 변수의 유형에 따라로드 할 구체 구현을 동적으로 선택할 수 있습니까?
여기 또는 코스에서 벗어나나요?
제네릭은 컴파일 시간에 해결 얻을 때문에 - 그는화물, 런타임 결정으로 실시되고있는 항목의 종류에 따라 자신의 결정을 만들고있다. – Bevan
컴파일시 제네릭을 해결할 필요는 없습니다. 나를 믿지 않으면 Type.MakeGenericType()을보십시오. – dviljoen