Sobes.tech
Junior — Middle

Selgitage sõltuvuste süstimise põhimõtet programmeerimiskoodis ja selle eeliseid.

sobes.tech AI

Vastus AI-lt

Sõltuvuste süstimine (Dependency Injection, DI) on disainimuster, kus objekt saab oma sõltuvused väljastpoolt, mitte ei loo neid ise. See suurendab koodi modulaarust ja testitavust.

DI eelised:

  • Testimise lihtsustamine — sõltuvused saab hõlpsasti asendada mock- või stub-objektidega.
  • Nõrk sidumine — klassid ei sõltu konkreetsetest rakendustest, vaid ainult abstraktsioonidest.
  • Paindlikkuse suurendamine — sõltuvuste rakendusi on lihtne muuta ilma kasutaja koodi muutmata.

Näide C#-s, kasutades konstruktorit sõltuvuste injekteerimiseks:

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) // sõltuvus injekteeritakse konstruktoriga
    {
        _logger = logger;
    }

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

// Kasutamine:
var logger = new ConsoleLogger();
var service = new UserService(logger);
service.CreateUser("Alice");