Sobes.tech
Junior

Kam skirta Dependency Injection C# kūrime?

sobes.tech AI

Atsakymas iš AI

Priklausomybių injekcija (DI) C# naudojama priklausomybių valdymui tarp klasių, kas padidina kodo lankstumą ir testuojamumą.

Pagrindiniai DI tikslai:

  • Sumažinti sujungimą: klasės tiesiogiai nesukuria savo priklausomybių, o jas gauna iš išorės.
  • Supaprastinti testavimą: priklausomybes lengvai galima pakeisti su mocks ar stubais.
  • Pagerinti priežiūrą: priklausomybės įgyvendinimo keitimas nereikalauja keisti kodo, kuris ją naudoja.

Pavyzdys:

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) {
        // naudotojo kūrimo logika
        _logger.Log($"Naudotojas {name} sukurtas.");
    }
}

// Priklausomybių injekcija
var logger = new ConsoleLogger();
var userService = new UserService(logger);
userService.CreateUser("Alice");

Šiuo būdu DI skatina valdymo inversiją (IoC) ir gerina programos architektūrą.