Junior — Middle
Izskaidrojiet atkarību injekcijas principu programmkoda un tā priekšrocības.
sobes.tech AI
Atbilde no AI
Atkarības injekcija (Dependency Injection, DI) ir projektēšanas paraugs, kurā objekts saņem savas atkarības no ārpuses, nevis pats tās izveido. Tas uzlabo koda modulatitāti un testējamību.
DI priekšrocības:
- Vienkāršo testēšanu — atkarības var viegli aizstāt ar mocks vai stubs.
- Vāja sasaistība — klases nav atkarīgas no konkrētām realizācijām, tikai no abstrakcijām.
- Palielina elastību — ir viegli mainīt atkarību realizācijas bez izmaiņām patērētāja kodā.
Piemērs C# ar konstruktoru, kas injicē atkarību:
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) // atkarība injicēta caur konstruktoru
{
_logger = logger;
}
public void CreateUser(string name)
{
// lietotāja izveides loģika
_logger.Log($"Lietotājs {name} izveidots.");
}
}
// Lietošana:
var logger = new ConsoleLogger();
var service = new UserService(logger);
service.CreateUser("Alice");