몇 가지 다른 책임이있는 WCF 서비스가 있지만 코드와 상호 작용하는 모든 사용자에게 하나의 진입 점이 있습니다. 간단하게하기 위해, 2 가지 방법IOC 컨테이너 - WCF 서비스 - 생성자를 통해 모든 종속성을 인스턴스화해야합니까?
private IMethodAHelper _methodA;
private IMethodBHelper _methodB;
public MyService(IMethodAHelper methodA, IMethodBHelper methodB)
{
_methodA = methodA;
_methodB = methodB;
}
public void MethodA() {
_methodA.CallThis();
}
public void MethodB() {
_methodB.CallThis();
}
소비자가 단 하나의 이유는, MethodA 또는 MethodB에 대한 서비스를 호출하기 때문에, 그것은 IOC 컨테이너가 모든 종속성을 회전 불필요하게 될 것이라는 문제가있는 가정 해 봅시다? 하나의 엔트리 포인트를 제공하고자하므로 서비스를 분할하고 싶지는 않지만 서비스의 각 소비자가 하위 집합 만 필요할 때 모든 종속성을 끌어 올리는 것은 약간의 낭비입니다.
내가이 일을 생각하는 또 다른 방법은 많이 힘들어 단위 테스트를 작성 할 수 있습니다, 그러나,
public void MethodA() {
var methodA = ObjectFactory.GetInstance<IMethodAHelper>();
methodA.CallThis();
}
이 그것을 필요로하는 의존성을 가지고 각각의 "경로"를 수 같은 것입니다. 누구든지 어떤 제안이 있습니까? 모든 종속성을 끌어 올리는 것이 얼마나 큰 이슈입니까? 이 서비스에 대한 첫 번째 진입 점이 끝나면 생성자를 통해 종속성을 주입하는 것이 타당하지만이 첫 번째 진입 점에서 권장되는 접근 방법은 무엇입니까?