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");