Sobes.tech
Junior

C# dasturlashda Dependency Injection nima uchun kerak?

sobes.tech AI

AIdan javob

C# da Dependency Injection (DI) foydalanish, sinflar orasidagi bog'liqliklarni boshqarish uchun ishlatiladi, bu esa kodning moslashuvchanligi va test qilish imkoniyatini oshiradi.

DI ning asosiy maqsadlari:

  • Bog'liqlikni kamaytirish: sinflar o'z bog'liqliklarini to'g'ridan-to'g'ri yaratmay, tashqaridan oladi.
  • Testlarni soddalashtirish: bog'liqliklarni mock yoki stub bilan oson almashtirish mumkin.
  • Qo'llab-quvvatlashni yaxshilash: bog'liqlikning amalga oshirilishini o'zgartirish, uni ishlatadigan kodni o'zgartirishni talab qilmaydi.

Misol:

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) {
        // foydalanuvchi yaratish logikasi
        _logger.Log($"Foydalanuvchi {name} yaratildi.");
    }
}

// Bog'liqlikni kiritish
var logger = new ConsoleLogger();
var userService = new UserService(logger);
userService.CreateUser("Alice");

Shu tarzda, DI nazoratni teskari qilish (IoC) ni rag'batlantiradi va dastur arxitekturasini yaxshilaydi.