Sobes.tech
Junior — Middle

Qual meio é utilizado para a injeção de dependências no desenvolvimento de sistemas de software?

sobes.tech IA

Resposta da IA

Para a integração de dependências no desenvolvimento de sistemas de software, muitas vezes é utilizado o padrão Injeção de Dependências (DI) — injeção de dependências.

Em C#, para implementar DI, geralmente são utilizados contêineres especiais (contenedores IoC), que gerenciam a criação e o ciclo de vida dos objetos, bem como suas dependências.

Meios populares para DI em C#:

  • Microsoft.Extensions.DependencyInjection — contêiner embutido no .NET Core e .NET 5+
  • Autofac — contêiner poderoso e flexível
  • Ninject
  • Unity

Exemplo de uso do DI embutido no ASP.NET Core:

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

public class EmailService : IMessageService
{
    public void Send(string message)
    {
        Console.WriteLine($"Envio de email: {message}");
    }
}

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

// No controlador ou outra classe
public class HomeController
{
    private readonly IMessageService _messageService;

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

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

Dessa forma, DI permite separar a criação de dependências do seu uso, o que melhora a testabilidade e a manutenção do código.