Sobes.tech
Junior

Ի՞նչ է անհրաժեշտ Dependency Injection-ը C# զարգացման մեջ։

sobes.tech AI

Պատասխան AI-ից

C#-ի Dependency Injection (DI)-ը օգտագործվում է դասերի միջև կախվածությունները կառավարելու համար, ինչը բարձրացնում է կոդի ճկունությունը և թեստավորման հնարավորությունը:

DI-ի հիմնական նպատակները՝

  • Հակակշռության թուլացում՝ դասերը իրենց կախվածությունները անմիջապես չեն ստեղծում, այլ ստանում են դրանք արտաքինից:
  • Թեստավորման պարզեցում՝ կախվածությունները հեշտությամբ կարող են փոխարինվել mocks կամ stubs-ով:
  • Աշխատունակության բարելավում՝ կախվածության իրականացման փոփոխությունը չի պահանջում օգտագործող կոդի փոփոխություն:

Օրինակ՝

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) {
        // օգտագործողի ստեղծման տրամաբանություն
        _logger.Log($"Օգտագործող {name} ստեղծվեց.");
    }
}

// Կախվածության ներմուծում
var logger = new ConsoleLogger();
var userService = new UserService(logger);
userService.CreateUser("Alice");

Այս կերպ, DI-ն խթանում է կառավարման հակառակ ուղղությունը (IoC) և բարելավում է հավելվածի ճարտարապետությունը։