Sobes.tech
Junior

C#-də Dependency Injection nə üçün istifadə olunur?

sobes.tech Süni İntellekt

AI-dan cavab

C# dilində Bağımlılıq Enjeksiyası (DI), sinflər arasındakı asılılıqları idarə etmək üçün istifadə olunur, bu da kodun çevikliyini və test ediləbilənliyini artırır.

DI-nin əsas məqsədləri:

  • Bağlılığı zəiflətmək: sinflər birbaşa öz asılılıqlarını yaratmır, əvəzinə onları xaricdən alır.
  • Testləri sadələşdirmək: asılılıqları asanlıqla mock və ya stub ilə dəyişdirmək mümkündür.
  • Dəstək və baxımını yaxşılaşdırmaq: asılılığın həyata keçirilməsini dəyişdirmək, onu istifadə edən kodu dəyişdirməyi tələb etmir.

Nümunə:

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ı.");
    }
}

// Asılılığın daxil edilməsi
var logger = new ConsoleLogger();
var userService = new UserService(logger);
userService.CreateUser("Alice");

Bu şəkildə, DI idarəetmənin tərsinə çevrilməsini (IoC) təşviq edir və tətbiqin memarlığını yaxşılaşdırır.