Junior — Middle
Ներկայացրեք կախվածությունների ներդրման սկզբունքը ծրագրային կոդում և դրա առավելությունները։
sobes.tech AI
Պատասխան AI-ից
Անվտանգությունների ներմուծումը (Dependency Injection, DI)՝ դա նախագծման ձևաչափ է, որի ժամանակ օբյեկտը ստանում է իր կախվածությունները արտաքինից, այլ ոչ թե ինքն է ստեղծում դրանք։ Սա բարձրացնում է կոդի մոդուլայնությունը և թեստավորման հնարավորությունը։
DI-ի առավելությունները՝
- Հեշտացնում է թեստավորումը — կախվածությունները հեշտությամբ կարող են փոխարինվել mock կամ stub-ներով։
- Ազատ կապ — դասերը չեն կախված կոնկրետ իրականցումներից, միայն աբստրակցիաներից։
- Բարձրացնում է ճկունությունը — հեշտ է փոխել կախվածությունների իրականցումները առանց օգտագործողի կոդը փոխելու։
Օրինակ C#-ում՝ օգտագործելով կոնստրուկտոր՝ կախվածությունը ներմուծելու համար՝
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 service = new UserService(logger);
service.CreateUser("Alice");