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.