Sobes.tech
Junior — Middle

Paaiškinkite priklausomybių injekcijos principą programinio kodo ir jo privalumus.

sobes.tech AI

Atsakymas iš AI

Priklausomybių injekcija (Dependency Injection, DI) yra projektavimo šablonas, kai objektas gauna savo priklausomybes iš išorės, o ne pats jas kuria. Tai pagerina kodo modulį ir testuojamumą.

DI privalumai:

  • Paprastina testavimą — priklausomybes galima lengvai pakeisti į mocks ar stubs.
  • Silpnas sujungimas — klasės nepriklauso nuo konkrečių įgyvendinimų, tik nuo abstrakcijų.
  • Padidina lankstumą — lengva keisti priklausomybių įgyvendinimus be keičiamo vartotojo kodo.

Pavyzdys C# kalba, naudojant konstruktorių priklausomybei injekuoti:

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) // priklausomybė injekuojama per konstruktorių
    {
        _logger = logger;
    }

    public void CreateUser(string name)
    {
        // vartotojo kūrimo logika
        _logger.Log($"Vartotojas {name} sukurtas.");
    }
}

// Naudojimas:
var logger = new ConsoleLogger();
var service = new UserService(logger);
service.CreateUser("Alice");