Junior — Middle
Koji pristupi i tehnike osiguravaju poštovanje principa inverzije zavisnosti u projektovanju sistema?
sobes.tech АИ
Одговор од АИ
Princip inverzije zavisnosti (Dependency Inversion Principle) u projektovanju sistema postiže se sledećim pristupima i tehnikama:
- Korišćenje apstrakcija umesto konkretnih implementacija. Klase treba da zavise od interfejsa ili apstraktnih klasa, a ne od konkretnih klasa.
- Ubacivanje zavisnosti (Dependency Injection). Zavisnosti se prosleđuju klasi spolja (kroz konstruktor, svojstva ili metode), a ne kreiraju unutar nje.
- Inverzija kontrole (IoC). Kontrola nad kreiranjem i povezivanjem objekata se prenosi na eksterni kontejner ili okvir.
Primer u C# sa ubacivanjem zavisnosti:
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; // zavisnost se prosleđuje spolja
}
public void CreateUser(string name)
{
// logika za kreiranje korisnika
_logger.Log($"Korisnik {name} kreiran.");
}
}
Ovaj pristup olakšava testiranje, proširivost i održavanje koda.