Junior — Middle
Dasturiy tizimlarni ishlab chiqishda bog'liqliklarni kiritish uchun qanday vosita ishlatiladi?
sobes.tech AI
AIdan javob
Dasturiy tizimlarni ishlab chiqishda bog‘liqliklarni integratsiya qilish uchun ko‘pincha Dependency Injection (DI) naqshidan foydalaniladi — bog‘liqliklarni in'ektsiya qilish.
C# da DI ni amalga oshirish uchun odatda maxsus konteynerlar (IoC konteynerlari) ishlatiladi, ular obyektlarning yaratilishini va ularning hayot aylanishini, shuningdek, ularning bog‘liqliklarini boshqaradi.
C# da DI uchun mashhur vositalar:
- Microsoft.Extensions.DependencyInjection — .NET Core va .NET 5+ ga o‘rnatilgan konteyner
- Autofac — kuchli va moslashuvchan konteyner
- Ninject
- Unity
ASP.NET Core da o‘rnatilgan DI ni ishlatish misoli:
public interface IMessageService
{
void Send(string message);
}
public class EmailService : IMessageService
{
public void Send(string message)
{
Console.WriteLine($"Email yuborish: {message}");
}
}
// Startup.cs da
public void ConfigureServices(IServiceCollection services)
{
services.AddTransient<IMessageService, EmailService>();
}
// Kontroler yoki boshqa sinfda
public class HomeController
{
private readonly IMessageService _messageService;
public HomeController(IMessageService messageService)
{
_messageService = messageService;
}
public void Notify()
{
_messageService.Send("Salom!");
}
}
Shu tarzda, DI bog‘liqliklarni yaratishni ularning foydalanishidan ajratishga imkon beradi, bu esa kodning test qilish va saqlash imkoniyatlarini yaxshilaydi.