Sobes.tech
Junior — Middle

Welche Ansätze und Techniken gewährleisten die Einhaltung des Prinzips der Dependency Inversion im Systemdesign?

sobes.tech KI

Antwort von AI

Das Prinzip der Dependency Inversion (Dependency Inversion Principle) in der Systemgestaltung wird durch folgende Ansätze und Techniken erreicht:

  • Verwendung von Abstraktionen anstelle konkreter Implementierungen. Klassen sollten von Schnittstellen oder abstrakten Klassen abhängen, nicht von konkreten Klassen.
  • Dependency Injection (DI). Abhängigkeiten werden von außen in die Klasse eingeführt (über Konstruktor, Eigenschaften oder Methoden), anstatt innerhalb der Klasse erstellt zu werden.
  • Inversion der Steuerung (IoC). Die Kontrolle über die Erstellung und Verbindung von Objekten wird an einen externen Container oder Framework übertragen.

Beispiel in C# mit Dependency Injection:

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)
    {
        _logger = logger; // Abhängigkeit wird von außen übergeben
    }

    public void CreateUser(string name)
    {
        // Logik zur Benutzererstellung
        _logger.Log($"Benutzer {name} erstellt.");
    }
}

Dieser Ansatz erleichtert Tests, Erweiterbarkeit und Wartung des Codes.