Как разделить бизнес-логику и инфраструктуру?

Middle
268 просмотров
AFK Offer AI

Бизнес-логика (usecase) не должна знать про конкретные базы данных, HTTP или gRPC. Определяешь интерфейсы (Repository, Client) в слое домена, реализуешь их в инфраструктурном слое. Usecase принимает интерфейсы через конструктор. Это позволяет менять Postgres на Mongo без изменения бизнес-логики, и тестировать usecase с моками вместо реальной БД.

Следующий вопрос

Как реализовать LRU cache?