Junior — Middle
Aké prístupy a techniky zabezpečujú dodržiavanie princípu invertovania závislostí pri navrhovaní systému?
sobes.tech AI
Odpoveď od AI
Princip invertovania závislostí (Dependency Inversion Principle) v návrhu systémov sa dosahuje nasledujúcimi prístupmi a technikami:
- Použitie abstrakcií namiesto konkrétnych implementácií. Triedy by mali závisieť od rozhraní alebo abstraktných tried, nie od konkrétnych tried.
- Vkladanie závislostí (Dependency Injection). Závislosti sa odovzdávajú triede zvonku (cez konštruktor, vlastnosti alebo metódy) a nie sú vytvárané vnútri nej.
- Inverzia riadenia (IoC). Kontrola nad vytváraním a spájaním objektov sa prenáša na externý kontajner alebo rámec.
Príklad v C# s injekciou závislostí:
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; // závislosť je odovzdaná zvonku
}
public void CreateUser(string name)
{
// logika vytvárania používateľa
_logger.Log($"Používateľ {name} vytvorený.");
}
}
Tento prístup uľahčuje testovanie, rozšíriteľnosť a údržbu kódu.