Sobes.tech
Junior — Middle

Aké prístupy a techniky zabezpečujú dodržiavanie princípu invertovania závislostí pri navrhovaní systému?

sobes.tech AI

Odpoveď od AI

Princip invertovania závislostí (Dependency Inversion Principle) v návrhu systémov sa dosahuje nasledujúcimi prístupmi a technikami:

  • Použitie abstrakcií namiesto konkrétnych implementácií. Triedy by mali závisieť od rozhraní alebo abstraktných tried, nie od konkrétnych tried.
  • Vkladanie závislostí (Dependency Injection). Závislosti sa odovzdávajú triede zvonku (cez konštruktor, vlastnosti alebo metódy) a nie sú vytvárané vnútri nej.
  • Inverzia riadenia (IoC). Kontrola nad vytváraním a spájaním objektov sa prenáša na externý kontajner alebo rámec.

Príklad v C# s injekciou závislostí:

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; // závislosť je odovzdaná zvonku
    }

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

Tento prístup uľahčuje testovanie, rozšíriteľnosť a údržbu kódu.