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.