Sobes.tech
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");