Sobes.tech
Junior

Kam ir nepieciešama Dependency Injection C# izstrādē?

sobes.tech AI

Atbilde no AI

Atkarību injekcija (DI) C# tiek izmantota atkarību pārvaldībai starp klasēm, kas palielina koda elastību un testējamību.

DI galvenie mērķi:

  • Samazināt sasaisti: klases tieši neveido savas atkarības, bet tās saņem no ārpuses.
  • Vienkāršot testēšanu: atkarības ir viegli aizstāt ar mocks vai stubiem.
  • Uzlabot uzturēšanu: atkarības īstenošanu var mainīt, nemainot kodu, kas to izmanto.

Piemērs:

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;
    }
    public void CreateUser(string name) {
        // lietotāja izveides loģika
        _logger.Log($"Lietotājs {name} izveidots.");
    }
}

// Atkarību injekcija
var logger = new ConsoleLogger();
var userService = new UserService(logger);
userService.CreateUser("Alice");

Tādējādi DI veicina kontroles inversiju (IoC) un uzlabo lietojumprogrammas arhitektūru.