Sobes.tech
Intern — Junior

Proqram modullarında asılılıqların injeksiyası nə üçün istifadə olunur?

sobes.tech Süni İntellekt

AI-dan cavab

Asılılıqların inyeksiyası (Dependency Injection, DI) proqram modullarının modulluğunu və test ediləbilərliyini artırmaq üçün istifadə olunur. Sinif daxilində asılılıqları yaratmaq əvəzinə, onlar xaricdən ötürülür, bu da asıllıqları asanlıqla dəyişdirməyə, kodun dəstəklənməsini və genişləndirilməsini sadələşdirir.

Məsələn, C#-da DI istifadə edərək, interfeysin tətbiqini sinifin konstruktoruna ötürmək olar:

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) {
        // istifadəçi yaradılması loqikası
        _logger.Log($"İstifadəçi {name} yaradıldı.");
    }
}

Bu yanaşma, logger-ı başqa bir (məsələn, fayl) ilə dəyişdirməyi, UserService sinfini dəyişdirmədən asanlaşdırır.