Sobes.tech
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-ում փոփոխությունների: