Sould colocador para ser delegado en la interfaz?
Pregunta
Tenemos gran cantidad de objetos con este tipo de diseño de interfaz y varias implementaciones, y el uso de varios objetos por la composición. Ejemplo: Foo implementa IFoo y tienen un objeto que implementa Bar IBar Foo también tiene un método setBar (IBar bar) para la inyección de dependancie.
Mi pregunta es: el colocador sould't estar en la interfaz? (Para las pruebas, que imita ... estoy atascado!)
Solución
Si está utilizando polimorfismo, es decir, llamando a la incubadora del tipo de interfaz, es obvio que se necesita en la interfaz.
Otros consejos
Para tener un colocador en la interfaz sólo por burla y la prueba no es bueno. Por lo tanto usted permite que los usuarios de esa interfaz para componentes conjunto arbitrario, a pesar de que las propiedades de ese objeto, probablemente, no deben ser modificables después de la construcción. La interfaz no debe revelar cómo construir objeto.
Cualquiera de inyectar a foo bar mediante inyección colocador. En un contexto donde Foo no puede existir sin barra que sería más apropiado para inyectar bar con un constructor.
Para saber más: Tipos de inyección de dependencias