Sobes.tech
Junior — Middle

Koji pristupi i tehnike osiguravaju poštovanje principa inverzije zavisnosti u projektovanju sistema?

sobes.tech АИ

Одговор од АИ

Princip inverzije zavisnosti (Dependency Inversion Principle) u projektovanju sistema postiže se sledećim pristupima i tehnikama:

  • Korišćenje apstrakcija umesto konkretnih implementacija. Klase treba da zavise od interfejsa ili apstraktnih klasa, a ne od konkretnih klasa.
  • Ubacivanje zavisnosti (Dependency Injection). Zavisnosti se prosleđuju klasi spolja (kroz konstruktor, svojstva ili metode), a ne kreiraju unutar nje.
  • Inverzija kontrole (IoC). Kontrola nad kreiranjem i povezivanjem objekata se prenosi na eksterni kontejner ili okvir.

Primer u C# sa ubacivanjem zavisnosti:

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; // zavisnost se prosleđuje spolja
    }

    public void CreateUser(string name)
    {
        // logika za kreiranje korisnika
        _logger.Log($"Korisnik {name} kreiran.");
    }
}

Ovaj pristup olakšava testiranje, proširivost i održavanje koda.