Ответ
В Чистой архитектуре все зависимости направлены строго внутрь, к центральным слоям системы. Это фундаментальный принцип, известный как Правило Зависимостей (The Dependency Rule).
Это означает, что:
- Внутренние слои (Entities, Use Cases) ничего не знают о существовании внешних слоёв.
- Внешние слои (UI, базы данных, фреймворки) зависят от внутренних и должны соответствовать их интерфейсам (контрактам).
Почему это важно? Такой подход изолирует бизнес-логику от деталей реализации. Вы можете заменить базу данных, веб-фреймворк или UI, не затрагивая ядро системы.
Пример на Python:
# Внутренний слой (домен). Ничего не знает о внешних слоях.
class Order:
def __init__(self, order_id: int, amount: float):
self.id = order_id
self.amount = amount
# Внешний слой (инфраструктура). Зависит от внутреннего слоя.
# Он импортирует и использует класс Order.
class OrderRepository:
def save(self, order: Order): # <-- Зависимость направлена внутрь, на класс Order
print(f"Сохранение заказа {order.id} в базу данных...")
# db_connection.execute("INSERT INTO orders ...")
# Класс Order при этом ничего не знает о OrderRepository.