Sobes.tech
Junior

Zašto je Dependency Injection potreban u razvoju na C#?

sobes.tech АИ

Одговор од АИ

Umetanje zavisnosti (DI) u C# se koristi za upravljanje zavisnostima između klasa, čime se povećava fleksibilnost i testabilnost koda.

Glavni ciljevi DI:

  • Slabljenje povezanosti: klase ne kreiraju svoje zavisnosti direktno, već ih dobijaju spolja.
  • Pojednostavljenje testiranja: lako je zameniti zavisnosti sa mock-ovima ili stubovima.
  • Poboljšanje održivosti: promena implementacije zavisnosti ne zahteva promenu koda koji je koristi.

Primer:

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) {
        // logika kreiranja korisnika
        _logger.Log($"Korisnik {name} kreiran.");
    }
}

// Umetanje zavisnosti
var logger = new ConsoleLogger();
var userService = new UserService(logger);
userService.CreateUser("Alice");

Na ovaj način, DI podstiče inverziju kontrole (IoC) i poboljšava arhitekturu aplikacije.