Sobes.tech
Junior — Middle

Leg het principe van dependency injection in programmeercode uit en de voordelen ervan.

sobes.tech AI

Antwoord van AI

Dependency Injection (DI) is een ontwerpprincipe waarbij een object zijn afhankelijkheden van buiten krijgt, in plaats van ze zelf te creëren. Dit verbetert de modulariteit en testbaarheid van de code.

Voordelen van DI:

  • Eenvoudiger testen — afhankelijkheden kunnen gemakkelijk worden vervangen door mocks of stubs.
  • Lage koppeling — klassen zijn niet afhankelijk van concrete implementaties, maar alleen van abstracties.
  • Grotere flexibiliteit — het is gemakkelijk om implementaties van afhankelijkheden te wijzigen zonder de code van de gebruiker aan te passen.

Voorbeeld in C# met een constructor voor het injecteren van afhankelijkheden:

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) // afhankelijkheid wordt via de constructor geïnjecteerd
    {
        _logger = logger;
    }

    public void CreateUser(string name)
    {
        // logica voor het aanmaken van een gebruiker
        _logger.Log($"Gebruiker {name} aangemaakt.");
    }
}

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