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");