Junior — Middle
Koji je glavni razlog za primenu principa inverzije zavisnosti u softverskoj arhitekturi?
sobes.tech АИ
Одговор од АИ
Princip zavisnosti obrnut (Dependency Inversion Principle, DIP) primenjuje se za smanjenje povezanosti između komponenti sistema i povećanje njegove fleksibilnosti i testabilnosti.
Glavni razlog za primenu DIP je da visokorazredni moduli budu nezavisni od niskorazrednih, pri čemu oba zavise od apstrakcija (interfejsa), a ne od konkretnih implementacija. Ovo omogućava lako zamenjivanje implementacija, pojednostavljuje održavanje i proširenje koda.
Primer u C#:
public interface ILogger
{
void Log(string message);
}
public class FileLogger : ILogger
{
public void Log(string message) { /* zapis u fajl */ }
}
public class UserService
{
private readonly ILogger _logger;
public UserService(ILogger logger)
{
_logger = logger; // zavisnost putem apstrakcije
}
public void CreateUser(string name)
{
// logika kreiranja korisnika
_logger.Log($"Korisnik {name} kreiran.");
}
}
Ovde, UserService zavisi od interfejsa ILogger, a ne od konkretne implementacije FileLogger. Ovo olakšava zamenu logera, na primer, sa DatabaseLogger, bez promena u UserService.