Junior — Middle
Mi az oka annak, hogy az függőségek fordított elvét alkalmazzuk a szoftverarchitektúrában?
sobes.tech MI
Válasz az MI-től
A függőség fordított elve (Dependency Inversion Principle, DIP) alkalmazása a rendszer komponensei közötti kapcsolódás csökkentésére és a rugalmasságának, tesztelhetőségének növelésére irányul.
A DIP alkalmazásának fő oka, hogy a magas szintű modulokat függetlenítsük az alacsony szintű moduloktól, mindkettő az absztrakciókra (interfészekre) legyen támaszkodva, nem pedig konkrét megvalósításokra. Ez lehetővé teszi a megvalósítások könnyű cseréjét, egyszerűsíti a kód karbantartását és bővítését.
Példa C#-ban:
public interface ILogger
{
void Log(string message);
}
public class FileLogger : ILogger
{
public void Log(string message) { /* írás fájlba */ }
}
public class UserService
{
private readonly ILogger _logger;
public UserService(ILogger logger)
{
_logger = logger; // absztrakció által biztosított függőség
}
public void CreateUser(string name)
{
// felhasználó létrehozási logika
_logger.Log($"Felhasználó {name} létrehozva.");
}
}
Itt a UserService az ILogger interfészre támaszkodik, nem pedig a konkrét FileLogger-re. Ez megkönnyíti a logger cseréjét, például DatabaseLogger-re, anélkül, hogy módosítani kellene a UserService-t.