Junior — Middle
Кои подходи и техники осигуряват спазването на принципа за инверсия на зависимостите при проектирането на системата?
sobes.tech AI
Отговор от AI
Принципът на обръщане на зависимостите (Dependency Inversion Principle) в системното проектиране се постига чрез следните подходи и техники:
- Използване на абстракции вместо конкретни реализации. Класовете трябва да зависят от интерфейси или абстрактни класове, а не от конкретни класове.
- Внедряване на зависимости (Dependency Injection). Зависимостите се предават на класа отвън (чрез конструктор, свойства или методи), а не се създават вътре в него.
- Обратна връзка на управлението (IoC). Контролът върху създаването и свързването на обекти се прехвърля към външен контейнер или рамка.
Пример на C# с внедряване на зависимости:
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; // зависимостта се предава отвън
}
public void CreateUser(string name)
{
// логика за създаване на потребител
_logger.Log($"Потребител {name} е създаден.");
}
}
Този подход улеснява тестването, разширяемостта и поддръжката на кода.