Junior — Middle
Кадом восита барои ворид кардани вобастагиҳо дар таҳияи системҳои нармафзор истифода мешавад?
sobes.tech AI
Ҷавоб аз AI
Программистик системаларда вобаста бўлишларни жорий қилишда кўпинча Dependency Injection (DI) модели қўлланилади — вобастликларни инжекторлаш.
C#да DIни амалга ошириш учун одатда махсус контейнери (IoC контейнери)лар қўлланилади, улар объектларни яратиш ва уларнинг ҳаёт циклларини, шунингдек, уларнинг вобастликларини бошқаради.
C#да DI учун машҳур воситалар:
- Microsoft.Extensions.DependencyInjection — .NET Core ва .NET 5+да ўрнатилган контейнери
- Autofac — кучли ва мослашувчан контейнери
- Ninject
- Unity
ASP.NET Coreда ўрнатилган DIдан фойдаланиш намунаси:
public interface IMessageService
{
void Send(string message);
}
public class EmailService : IMessageService
{
public void Send(string message)
{
Console.WriteLine($"Электрон почта юбориш: {message}");
}
}
// Startup.csда
public void ConfigureServices(IServiceCollection services)
{
services.AddTransient<IMessageService, EmailService>();
}
// Контроллер ёки бошқа синфда
public class HomeController
{
private readonly IMessageService _messageService;
public HomeController(IMessageService messageService)
{
_messageService = messageService;
}
public void Notify()
{
_messageService.Send("Салом!");
}
}
Шу тарзда, DI вобастликларни яратишни улардан фойдаланишдан ажратишга имкон беради, бу эса коднинг тестлаш ва сақлаш имкониятларини яхшилайди.