Sobes.tech
Junior — Middle

რა საშუალებაა გამოყენებული პროგრამული სისტემების განვითარებაში დამოკიდებულებების ჩასმისთვის?

sobes.tech AI

პასუხი AI-სგან

პროგრამული სისტემების განვითარებაში ხშირად გამოიყენება Dependency Injection (DI) — დამოკიდებულებების შეყვანა.

C#-ში DI-ს განხორციელებისთვის ჩვეულებრივ გამოიყენება სპეციალური კონტეინერები (IoC კონტეინერები), რომლებიც მართავენ ობიექტების შექმნას და სიცოცხლის ციკლს, ასევე მათი დამოკიდებულებებს.

პოპულარული საშუალებები DI-სთვის C#-ში:

  • Microsoft.Extensions.DependencyInjection — ინტეგრირებული კონტეინერი .NET Core და .NET 5+-ში
  • Autofac — ძლიერი და მოქნილი კონტეინერი
  • Ninject
  • Unity

ASP.NET Core-ში ინტეგრირებული DI-ს გამოყენების მაგალითი:

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

public class EmailService : IMessageService
{
    public void Send(string message)
    {
        Console.WriteLine($"ელექტრონული ფოსტა გამოგზავნილია: {message}");
    }
}

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

// კონტროლერში ან სხვა კლასში
public class HomeController
{
    private readonly IMessageService _messageService;

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

    public void Notify()
    {
        _messageService.Send("გამარჯობა!");
    }
}

ამ გზით, DI საშუალებას აძლევს შექმნას დამოკიდებულებები მათი გამოყენებიდან დამოუკიდებლად, რაც კოდის ტესტირებადობას და შენარჩუნებას აუმჯობესებს.