Junior — Middle
Jaké přístupy a techniky zajišťují dodržování principu inverze závislostí v návrhu systému?
sobes.tech AI
Odpověď od AI
Princip inverze závislostí (Dependency Inversion Principle) v návrhu systémů je dosažen následujícími přístupy a technikami:
- Použití abstrakcí namísto konkrétních implementací. Třídy by měly záviset na rozhraních nebo abstraktních třídách, nikoliv na konkrétních třídách.
- Vkládání závislostí (Dependency Injection). Závislosti jsou předávány třídě zvenčí (přes konstruktor, vlastnosti nebo metody) a nejsou vytvářeny uvnitř třídy.
- Inverze řízení (IoC). Kontrola nad vytvářením a spojováním objektů je předána externímu kontejneru nebo frameworku.
Příklad v C# s injekcí 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ávislost je předána zvenčí
}
public void CreateUser(string name)
{
// logika tvorby uživatele
_logger.Log($"Uživatel {name} byl vytvořen.");
}
}
Tento přístup usnadňuje testování, rozšiřitelnost a údržbu kódu.