Preguntas etiquetadas con dependency-injection

Inyección de dependencias, es un patrón de diseño en el que las dependencias (instancias de objetos, propiedades) de un componente se establecen a través de los constructores, métodos o campos (propiedades). Es una forma especial de la inversión de dependencia más general.

4
Enfoques graduales a la inyección de dependencia
Estoy trabajando para hacer que mis clases sean comprobables por unidad, usando la inyección de dependencia. Pero algunas de estas clases tienen muchos clientes, y aún no estoy listo para refactorizarlos para comenzar a pasar las dependencias. Entonces estoy tratando de hacerlo gradualmente; manteniendo las dependencias predeterminadas por ahora, pero …


5
¿Cómo usar la inyección de dependencia y evitar el acoplamiento temporal?
Supongamos que tengo el Serviceque recibe dependencias a través del constructor pero también necesita inicializarse con datos personalizados (contexto) antes de que pueda usarse: public interface IService { void Initialize(Context context); void DoSomething(); void DoOtherThing(); } public class Service : IService { private readonly object dependency1; private readonly object dependency2; …




5
¿Podemos reemplazar completamente la herencia usando el patrón de estrategia y la inyección de dependencia?
Por ejemplo: var duckBehaviors = new Duckbehavior(); duckBehaviors.quackBehavior = new Quack(); duckBehaviors.flyBehavior = new FlyWithWings(); Duck mallardDuck = new Duck(DuckTypes.MallardDuck, duckBehaviors) Como la clase Duck contiene todos los comportamientos (abstractos), no parece necesario crear una nueva clase MallardDuck(que se extienda Duck). Referencia: Head First Design Pattern, Capítulo 1.







4
contexto ambiental vs inyección de constructor
Tengo muchas clases principales que requieren ISessionContext de la base de datos, ILogManager para el registro e IService utilizado para comunicarse con otros servicios. Quiero usar la inyección de dependencia para esta clase utilizada por todas las clases principales. Tengo dos posibles implementaciones. La clase principal que acepta IAmbientContext con …


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.