Sobes.tech
Junior — Middle

Milline vahend kasutatakse sõltuvuste sisestamiseks tarkvarasüsteemide arendamisel?

sobes.tech AI

Vastus AI-lt

Tarkvara süsteemide arendamisel kasutatakse sageli Dependency Injection (DI) mustrit — sõltuvuste sisestamist.

C#-s DI rakendamiseks kasutatakse tavaliselt spetsiaalseid konteinerid (IoC konteinerid), mis haldavad objektide loomist ja elutsüklit ning nende sõltuvusi.

Populaarsed DI vahendid C#-s:

  • Microsoft.Extensions.DependencyInjection — sisseehitatud konteiner .NET Core ja .NET 5+ süsteemides
  • Autofac — võimas ja paindlik konteiner
  • Ninject
  • Unity

Näide sisseehitatud DI kasutamisest ASP.NET Core-s:

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

public class EmailService : IMessageService
{
    public void Send(string message)
    {
        Console.WriteLine($"E-kirja saatmine: {message}");
    }
}

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

// Kontrolleris või muus klassis
public class HomeController
{
    private readonly IMessageService _messageService;

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

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

Sellisel viisil võimaldab DI eraldada sõltuvuste loomise nende kasutamisest, mis parandab koodi testitavust ja hooldatavust.