Sobes.tech
Junior — Middle

Jaký je hlavní důvod pro použití principu obrácení závislostí v softwarové architektuře?

sobes.tech AI

Odpověď od AI

Princip principu závislosti na obrácení (Dependency Inversion Principle, DIP) se používá ke snížení vazby mezi komponentami systému a ke zvýšení jeho flexibility a testovatelnosti.

Hlavním důvodem pro použití DIP je učinit vysoké úrovně moduly nezávislými na nízkých úrovních, přičemž obě závisí na abstrakcích (rozhraních) namísto konkrétních implementací. To umožňuje snadnou výměnu implementací, zjednodušuje údržbu a rozšiřování kódu.

Příklad v C#:

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

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

public class UserService
{
    private readonly ILogger _logger;

    public UserService(ILogger logger)
    {
        _logger = logger; // závislost přes abstrakci
    }

    public void CreateUser(string name)
    {
        // logika tvorby uživatele
        _logger.Log($"Uživatel {name} vytvořen.");
    }
}

Zde závisí UserService na rozhraní ILogger, nikoliv na konkrétní implementaci FileLogger. To usnadňuje výměnu loggeru, například za DatabaseLogger, bez nutnosti měnit UserService.