Sobes.tech
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 вобастликларни яратишни улардан фойдаланишдан ажратишга имкон беради, бу эса коднинг тестлаш ва сақлаш имкониятларини яхшилайди.