Sobes.tech
Junior — Middle

Кадом усулҳо ва техникаҳо кафолат медиҳанд, ки принсипи ивазкунии вобастагиро дар тарҳи система риоя кунанд?

sobes.tech AI

Ҷавоб аз AI

Принципи ислоҳоти вобастагиҳо (Dependency Inversion Principle) дар тарҳрезии система бо истифода аз роҳҳои зерин ва техникаҳо ба даст меояд:

  • Истифодаи абстраксияҳо ба ҷои татбиқҳои мушаххас. Синфҳо бояд ба интерфейсҳо ё синфҳои абстрактӣ вобаста бошанд, на ба синфҳои мушаххас.
  • Вуруд кардани вобастагиҳо (Dependency Injection). Вобастагиҳо аз берун ба синф гузошта мешаванд (аз тариқи конструктор, хусусиятҳо ё методҳо), ва дар дохили он сохта намешаванд.
  • Ислоҳоти идоракунӣ (IoC). Назорат бар сохтани ва пайваст кардани объектҳо ба контейнер ё рамзии беруна интиқол дода мешавад.

Масалан дар 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} эҷод шуд.");
    }
}

Ин муносибат ба санҷиш, васеъшавӣ ва нигоҳдории коди осонтар мекунад.