Junior — Middle
Aký prostriedok sa používa na zavádzanie závislostí pri vývoji softvérových systémov?
sobes.tech AI
Odpoveď od AI
Za implementáciu závislostí pri vývoji softvérových systémov sa často používa vzor Dependency Injection (DI) — vkladanie závislostí.
V C# sa na realizáciu DI zvyčajne používajú špeciálne kontajnery (IoC kontajnery), ktoré riadia vytváranie a životný cyklus objektov, ako aj ich závislosti.
Populárne prostriedky pre DI v C#:
- Microsoft.Extensions.DependencyInjection — zabudovaný kontajner v .NET Core a .NET 5+
- Autofac — výkonný a flexibilný kontajner
- Ninject
- Unity
Príklad použitia zabudovaného DI v ASP.NET Core:
public interface IMessageService
{
void Send(string message);
}
public class EmailService : IMessageService
{
public void Send(string message)
{
Console.WriteLine($"Odoslanie emailu: {message}");
}
}
// V Startup.cs
public void ConfigureServices(IServiceCollection services)
{
services.AddTransient<IMessageService, EmailService>();
}
// V kontroleri alebo inej triede
public class HomeController
{
private readonly IMessageService _messageService;
public HomeController(IMessageService messageService)
{
_messageService = messageService;
}
public void Notify()
{
_messageService.Send("Ahoj!");
}
}
Týmto spôsobom DI umožňuje oddeliť tvorbu závislostí od ich použitia, čo zlepšuje testovateľnosť a udržiavateľnosť kódu.