Sobes.tech
Junior — Middle

Dasturlash kodida bog'liqliklarni injektsiya qilish tamoyilini va uning asosiy maqsadini tushuntirib bera olasizmi?

sobes.tech AI

AIdan javob

Bağımlılık Enjeksiyonu (Dependency Injection, DI) — bu, obyektin öz bağımlılıqlarını özünün yaratmadığı, əksinə xaricdən aldığı bir nümunədir. Bu, kodun modulallığını, test ediləbilənliyini və çevikliyini artırır.

DI-nin əsas məqsədi:

  • Məsuliyyətlərin bölünməsi: sinif öz bağımlılıqlarını yaratmaqdan məsul deyil.
  • Testlərin sadələşdirilməsi: bağımlılıqları mock və ya stub ilə əvəz etmək olar.
  • Çevikliyin artırılması: bağımlılıqların həyata keçirilməsini asanlıqla dəyişmək mümkündür, sinifi dəyişmədən.

C#-də nümunə, konstruktor istifadə edilərək:

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; // bağımlılıq xaricdən enjekte edilir
    }

    public void CreateUser(string name) {
        // istifadəçi yaradılması loqikası
        _logger.Log($"İstifadəçi {name} yaradıldı.");
    }
}

// UserService yaradılarkən, lazım olan ILogger tətbiqi ötürülür
var service = new UserService(new ConsoleLogger());