Sobes.tech
Junior — Middle

Koje sredstvo se koristi za implementaciju zavisnosti u razvoju softverskih sistema?

sobes.tech АИ

Одговор од АИ

Za implementaciju zavisnosti u razvoju softverskih sistema često se koristi obrazac Dependency Injection (DI) — ubrizgavanje zavisnosti.

U C#-u, za realizaciju DI, obično se koriste specijalni kontejneri (IoC kontejneri), koji upravljaju kreiranjem i životnim ciklusom objekata, kao i njihovim zavisnostima.

Popularni alati za DI u C#:

  • Microsoft.Extensions.DependencyInjection — ugrađeni kontejner u .NET Core i .NET 5+
  • Autofac — moćan i fleksibilan kontejner
  • Ninject
  • Unity

Primer korišćenja ugrađenog DI u ASP.NET Core:

public interface IMessageService
{
    void Send(string message);
}

public class EmailService : IMessageService
{
    public void Send(string message)
    {
        Console.WriteLine($"Slanje emaila: {message}");
    }
}

// U Startup.cs
public void ConfigureServices(IServiceCollection services)
{
    services.AddTransient<IMessageService, EmailService>();
}

// U kontroleru ili drugoj klasi
public class HomeController
{
    private readonly IMessageService _messageService;

    public HomeController(IMessageService messageService)
    {
        _messageService = messageService;
    }

    public void Notify()
    {
        _messageService.Send("Zdravo!");
    }
}

Na ovaj način, DI omogućava odvajanje kreiranja zavisnosti od njihove upotrebe, što poboljšava testabilnost i održivost koda.