Sobes.tech
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.