저는 1 년 넘게 StructureMap을 사용해 왔습니다. 그리고 내가 사용하는 모든 시간 나는이IoC 용 래퍼가 좋은 생각입니까?
class IoC {
public static T GetInstance<T>()
{
return (T)GetInstance(typeof(T));
}
public static IEnumerable<T> GetAllInstances<T>()
{
return ObjectFactory.GetAllInstances<T>();
}
public static IEnumerable GetAllInstances(Type type)
{
return ObjectFactory.GetAllInstances(type);
}
public static object GetInstance(Type type)
{
return ObjectFactory.GetInstance(type);
}
public static void Inject<T>(T obj)
{
ObjectFactory.Inject(obj);
}
}
처럼 보였다 내가 선까지 점에서 IoC 컨테이너를 변경할 수 있습니다 가정 래퍼를 추가 IOC의라는 래퍼 클래스를 가지고있다. 이 시점에서 나는 이것이 나쁘다고 생각하고 있습니다. 한 가지 이유는 : 코드에서 다른 흥미로운 일을하기 위해 ObjectFactory를 사용할 수 없다는 것입니다.이 래퍼를 사용해야합니다. 다른 하나는 : 우리 코드가 실제로 DependencyInjection 컨테이너와 독립적 일 필요는 없습니다.
이 접근법을 사용하는 데있어서 장점/단점은 무엇입니까?
[Mark Seemann] (http://blog.ploeh.dk/)은 이러한 래퍼를 'Conforming Container'라고 부릅니다. 그는 최근에 [이것에 대한 블로그 게시물] (http : //blog.ploeh.dk/2014/05/19/conforming-container /) 그는 이것을 명백히 반 패턴이라고 부른다. – Steven