Sobes.tech
Junior — Middle

Kokie požiūriai ir technikos užtikrina priklausomybės inversijos principo laikymąsi sistemos projektavime?

sobes.tech AI

Atsakymas iš AI

Sistemos projektavimo priklausomybių inversijos principas (Dependency Inversion Principle) pasiekiamas naudojant šiuos požiūrius ir technikas:

  • Naudojant abstrakcijas vietoje konkrečių įgyvendinimų. Klasės turėtų priklausyti nuo sąsajų arba abstrakčių klasių, o ne nuo konkrečių klasių.
  • Priklausomybių injekcija (Dependency Injection). Priklausomybės perduodamos klasei iš išorės (per konstruktorių, savybes ar metodus), o ne kuriamos viduje.
  • Valdymo inversija (IoC). Objektų kūrimo ir sujungimo kontrolė perduodama išorinei talpyklai arba karkasui.

Pavyzdys C# su priklausomybių injekcija:

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; // priklausomybė perduodama iš išorės
    }

    public void CreateUser(string name)
    {
        // naudotojo kūrimo logika
        _logger.Log($"Naudotojas {name} sukurtas.");
    }
}

Šis požiūris palengvina testavimą, plėtimą ir kodo priežiūrą.