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");