Junior — Middle
Омӯзиши принсипи ислоҳоти вобастагиро дар меъмории нармафзор чист?
sobes.tech AI
Ҷавоб аз AI
Қоидаҳои муқобилшавии вобастагӣ (Dependency Inversion Principle, DIP) барои кам кардани пайвастагии байни компонентҳои системаву баланд бардоштани чандирӣ ва тестшавандагии он истифода мешаванд.
Асосии асосии истифодаи DIP ин аст, ки модулҳои сатҳи баланд аз модулҳои сатҳи паст мустақил бошанд, ҳарду ба абстраксияҳо (интерфейсҳо) такя кунанд, на ба амалишавии мушаххас. Ин имкон медиҳад, ки амалишавиро осонтар иваз кардан, нигоҳдорӣ ва васеъ кардани кодро содда мекунад.
Масалан дар C#:
public interface ILogger
{
void Log(string message);
}
public class FileLogger : ILogger
{
public void Log(string message) { /* навиштани ба файл */ }
}
public class UserService
{
private readonly ILogger _logger;
public UserService(ILogger logger)
{
_logger = logger; // вобастагӣ тавассути абстраксия
}
public void CreateUser(string name)
{
// мантиқи эҷоди корбар
_logger.Log($"Кори {name} эҷод шуд.");
}
}
Ин ҷо, UserService аз интерфейси ILogger вобаста аст, на аз амалишавии мушаххас FileLogger. Ин осон мекунад, ки логгерро, масалан, бо DatabaseLogger иваз кардан, бе тағирот дар UserService.