Sobes.tech
Junior — Middle

Aký je hlavný dôvod na použitie princípu invertovania závislostí v softvérovej architektúre?

sobes.tech AI

Odpoveď od AI

Princip závislosti na obrátení (Dependency Inversion Principle, DIP) sa používa na zníženie prepojenia medzi komponentmi systému a na zvýšenie jeho flexibility a testovateľnosti.

Hlavným dôvodom pre použitie DIP je, aby moduly vysokého úrovňa boli nezávislé od modulov nízkeho úrovňa, pričom obe závisia od abstrakcií (rozhraní), nie od konkrétnych implementácií. To umožňuje ľahkú výmenu implementácií, zjednodušuje údržbu a rozširovanie kódu.

Príklad v C#:

public interface ILogger
{
    void Log(string message);
}

public class FileLogger : ILogger
{
    public void Log(string message) { /* zápis do súboru */ }
}

public class UserService
{
    private readonly ILogger _logger;

    public UserService(ILogger logger)
    {
        _logger = logger; // závislosť cez abstrakciu
    }

    public void CreateUser(string name)
    {
        // logika vytvárania používateľa
        _logger.Log($"Používateľ {name} vytvorený.");
    }
}

Tu závisí UserService od rozhrania ILogger, nie od konkrétnej implementácie FileLogger. To uľahčuje výmenu loggera, napríklad za DatabaseLogger, bez zmien v UserService.