Sobes.tech
Junior — Middle

Expliquez le principe d'injection de dépendances dans le code logiciel et ses avantages.

sobes.tech IA

Réponse de l'IA

L'injection de dépendances (Dependency Injection, DI) est un patron de conception dans lequel un objet reçoit ses dépendances de l'extérieur, plutôt que de les créer lui-même. Cela améliore la modularité et la testabilité du code.

Avantages de la DI :

  • Simplification des tests — les dépendances peuvent être facilement remplacées par des mocks ou des stubs.
  • Faible couplage — les classes ne dépendent pas d'implémentations concrètes, mais uniquement d'abstractions.
  • Augmentation de la flexibilité — il est facile de changer les implémentations des dépendances sans modifier le code du consommateur.

Exemple en C# utilisant un constructeur pour injecter la dépendance :

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 dépendance est injectée via le constructeur
    {
        _logger = logger;
    }

    public void CreateUser(string name)
    {
        // logique de création d'utilisateur
        _logger.Log($"Utilisateur {name} créé.");
    }
}

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