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.