Sobes.tech
Junior — Middle

Millised lähenemisviisid ja tehnikad tagavad sõltuvuste inversiooni põhimõtte järgimise süsteemi kujundamisel?

sobes.tech AI

Vastus AI-lt

Süsteemi disainim sõltuvuste pööramise põhimõte (Dependency Inversion Principle) saavutatakse järgmiste lähenemisviiside ja tehnikate abil:

  • Abstraktsioonide kasutamine konkreetsete rakenduste asemel. Klassid peaksid sõltuma liidestest või abstraktsetest klassidest, mitte konkreetsetest klassidest.
  • Sõltuvuste sisestamine (Dependency Injection). Sõltuvused antakse klassile väljaspool (konstruktor, omadused või meetodid), mitte ei loo neid sees.
  • Kontrolli pööramine (IoC). Objekte loomise ja ühendamise kontroll antakse välisele konteinerile või raamistikule.

Näide C#-s sõltuvuste sisestamisega:

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; // sõltuvus antakse väljaspool
    }

    public void CreateUser(string name)
    {
        // kasutaja loomise loogika
        _logger.Log($"Kasutaja {name} loodud.");
    }
}

See lähenemine hõlbustab testimist, laiendatavust ja koodi hooldust.