Sobes.tech
Junior — Middle

Proqram kodunda asılılıqların injeksiyası prinsipini və onun üstünlüklərini izah edin.

sobes.tech Süni İntellekt

AI-dan cavab

Asılılıqların injektsiyası (Dependency Injection, DI) — bu, obyektin asılılıqlarını xaricdən alan və öz-özünə yaratmayan dizayn nümunəsidir. Bu, kodun modulluğunu və test edilə bilməsini artırır.

DI-nin üstünlükləri:

  • Testləri asanlaşdırır — asılılıqları asanlıqla mock və ya stub ilə dəyişdirmək mümkündür.
  • Zayıf bağlılıq — sinflər konkret tətbiqlərə deyil, yalnız abstraksiyalara bağlıdır.
  • Əlavə elastiklik — asılılıqların tətbiqlərini dəyişdirmək, istifadəçinin kodunu dəyişdirmədən asandır.

C#-da asılılığı konstruktor vasitəsilə injektsiya etmək nümunəsi:

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) // asılılıq konstruktor vasitəsilə injektsiya edilir
    {
        _logger = logger;
    }

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

// İstifadə:
var logger = new ConsoleLogger();
var service = new UserService(logger);
service.CreateUser("Alice");