Sobes.tech
Junior

Milleks on vajalik Dependency Injection C# arenduses?

sobes.tech AI

Vastus AI-lt

Sõltuvuste süstimine (DI) C#-s kasutatakse sõltuvuste haldamiseks klasside vahel, suurendades koodi paindlikkust ja testitavust.

DI peamised eesmärgid:

  • Vähendada sidusust: klassid ei loo otse oma sõltuvusi, vaid saavad need väljast.
  • Testimise lihtsustamine: sõltuvusi saab hõlpsasti asendada mock-ide või stub-idega.
  • Hooldatavuse parandamine: sõltuvuse rakendust saab muuta ilma selle kasutavat koodi muutmata.

Näide:

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) {
        // kasutaja loomise loogika
        _logger.Log($"Kasutaja {name} loodud.");
    }
}

// Sõltuvuse sisestamine
var logger = new ConsoleLogger();
var userService = new UserService(logger);
userService.CreateUser("Alice");

Sellisel viisil soodustab DI kontrolli pöördumist (IoC) ja parandab rakenduse arhitektuuri.