Sobes.tech
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.