Tengo un servicio WCF que tiene algunas responsabilidades diferentes, pero proporciona un punto de entrada para cualquier persona que interactúe con mi código. Para hacerlo simple, digamos que hay 2 métodosIOC Container - WCF Service - ¿Debería instanciar todas las dependencias mediante el constructor?
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();
}
Debido a que los consumidores solo llamar al servicio por una razón, MethodA o MethodB, es un problema que el contenedor COI será innecesariamente girar todas las dependencias? Quiero proporcionar un solo punto de entrada, por lo que no quiero dividir el servicio, pero parece un poco inútil duplicar todas las dependencias cuando cada consumidor del servicio solo necesite un subconjunto.
Otra forma en que estaba pensando en hacer esto sería algo así como
public void MethodA() {
var methodA = ObjectFactory.GetInstance<IMethodAHelper>();
methodA.CallThis();
}
Esto permite que cada "camino" para que aparezcan las dependencias que necesita, sin embargo, que hace que sea mucho más difícil de escribir pruebas unitarias. ¿Alguien tiene alguna sugerencia? ¿Qué tan grande es el problema para activar todas las dependencias? Después de este primer punto de entrada al servicio, tiene sentido inyectar las dependencias a través del constructor, pero en este primer punto de entrada, ¿cuál es el enfoque recomendado?