Sobes.tech
Junior — Middle

Explique el principio de inyección de dependencias en el código de programación y sus ventajas.

sobes.tech AI

Respuesta de la IA

La inyección de dependencias (Dependency Injection, DI) es un patrón de diseño en el que un objeto recibe sus dependencias desde fuera, en lugar de crearlas por sí mismo. Esto mejora la modularidad y la capacidad de prueba del código.

Ventajas de DI:

  • Facilita las pruebas — las dependencias se pueden reemplazar fácilmente por mocks o stubs.
  • Baja acoplamiento — las clases no dependen de implementaciones concretas, sino solo de abstracciones.
  • Mayor flexibilidad — es fácil cambiar las implementaciones de las dependencias sin modificar el código del consumidor.

Ejemplo en C# usando un constructor para inyectar la dependencia:

public interface ILogger
{
    void Log(string message);
}

public class ConsoleLogger : ILogger
{
    public void Log(string message) => Console.WriteLine(message);
}

public class UserService
{
    private readonly ILogger _logger;

    public UserService(ILogger logger) // la dependencia se inyecta a través del constructor
    {
        _logger = logger;
    }

    public void CreateUser(string name)
    {
        // lógica para crear un usuario
        _logger.Log($"Usuario {name} creado.");
    }
}

// Uso:
var logger = new ConsoleLogger();
var service = new UserService(logger);
service.CreateUser("Alice");