Intern — Junior
Барои чӣ ворид кардани вобастагиро дар модулҳои нармафзор истифода мебаранд?
sobes.tech AI
Ҷавоб аз AI
Вазифаҳои вобастагӣ (Dependency Injection, DI) барои баланд бардоштани модулнокӣ ва тестшавании модулҳои нармафзор истифода мешаванд. Ба ҷои он ки вобастагиро дар дохили синф эҷод кунанд, онҳо аз берун гузошта мешаванд, ки имкон медиҳад, ки иҷроишҳоро ба осонӣ иваз кардан, нигоҳдорӣ ва васеъ кардани коди осонтар шавад.
Масалан, дар C# бо DI, метавон иҷроиши интерфейсро ба конструктори синф гузошт:
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} эҷод шуд.");
}
}
Ин усул имкон медиҳад, ки логгерро ба дигаре (масалан, ба файл) бе тағир додани синфи UserService иваз кардан осон шавад.