Junior — Middle
Jakie podejścia i techniki zapewniają przestrzeganie zasady odwrócenia zależności w projektowaniu systemu?
sobes.tech AI
Odpowiedź od AI
Zasada odwrócenia zależności (Dependency Inversion Principle) w projektowaniu systemów osiąga się za pomocą następujących podejść i technik:
- Użycie abstrakcji zamiast konkretnych implementacji. Klasy powinny zależeć od interfejsów lub klas abstrakcyjnych, a nie od konkretnych klas.
- Wstrzykiwanie zależności (Dependency Injection). Zależności są przekazywane do klasy z zewnątrz (przez konstruktor, właściwości lub metody), a nie tworzone wewnątrz niej.
- Inwersja kontroli (IoC). Kontrola nad tworzeniem i łączeniem obiektów jest przekazywana zewnętrznemu kontenerowi lub frameworkowi.
Przykład w C# z wstrzykiwaniem zależności:
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; // zależność przekazywana z zewnątrz
}
public void CreateUser(string name)
{
// logika tworzenia użytkownika
_logger.Log($"Użytkownik {name} utworzony.");
}
}
Takie podejście ułatwia testowanie, rozszerzalność i utrzymanie kodu.