Sobes.tech
Junior — Middle

Kādi pieejas un tehnoloģijas nodrošina atkarības inversijas principa ievērošanu sistēmas projektēšanā?

sobes.tech AI

Atbilde no AI

Sistēmas projektēšanas atkarību inversijas princips (Dependency Inversion Principle) tiek sasniegts ar šādiem pieejām un tehnikām:

  • Abstrakciju izmantošana vietā konkrētām realizācijām. Klases ir jāatkarīgas no saskarnēm vai abstraktām klasēm, nevis no konkrētām klasēm.
  • Atkarību injekcija (Dependency Injection). Atkarības tiek nodotas klasei no ārpuses (caur konstruktoru, īpašībām vai metodēm), nevis tiek radītas iekšēji.
  • Kontroles inversija (IoC). Objekta izveides un sasaistes kontrole tiek nodota ārējam konteineram vai ietvaram.

Piemērs C# ar atkarību injekciju:

public interface ILogger
{
    void Log(string message);
}

public class ConsoleLogger : ILogger
{
    public void Log(string message) => Console.WriteLine(message);
}

public class UserService
{
    private readonly ILogger _logger;

    public UserService(ILogger logger)
    {
        _logger = logger; // atkarība tiek nodota no ārpuses
    }

    public void CreateUser(string name)
    {
        // lietotāja izveides loģika
        _logger.Log($"Lietotājs {name} izveidots.");
    }
}

Šī pieeja atvieglo testēšanu, paplašināmību un koda uzturēšanu.