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.