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) և բարելավում է հավելվածի ճարտարապետությունը։