Следуя чистой архитектуре, которая была описана дядей Бобом, весь ваш код, содержащий бизнес (доменную) логику (правила), должен находиться внутри бизнес-уровня.
Например, мы разрабатываем мобильное приложение для онлайн-заказа еды / одежды.Не имеет значения.
Уровень представления: (Состоит из представление и представление )
- Presenter - ручкапросмотр намерений (нажатие кнопок, просмотр отрисовки и т. д.), вызов бизнес-интеракторов, после получения результата от интеракторов, говорит о необходимости визуализации для отображения текущего состояния экрана / макета.
- Просмотр - не более, чем визуализацияИнтерфейс пользователя, держите представление тупым, вся ваша логика представления должна быть в презентере.
Пример: В этом слое вы можете проверить, например: экран корзины пользователя, ваш уровень презентации делает запросИнтерактор, который возвращает элементы корзины.Если список пуст, в вашем представлении отображается макет с заголовком «Ваша карта пуста», в противном случае отображается список элементов.
Бизнес / Доменный уровень: (Состоит из интерактора , вспомогательные классы и т. Д.)
Правило номер один - поддерживать уровень вашего домена в чистоте.Если вы используете gradle, вы можете использовать мультипроект с пустыми зависимостями.Только язык, rxjava, потому что это почти стандарт нашего времени.
Пример дела: Вам необходимо проверить информацию о заказе пользователя (адрес доставки, начальный).Вся ваша логика должна быть здесь.Проверка длины, регулярное выражение и т.д.
Уровень данных:
Знает, как сохранять, извлекать, обновлять, удалять информацию.Все о настойчивости.В случаях Android: уровень данных может сделать http запрос через retrofit2, room orm и т. Д. Кэш начинается здесь.
Если ваше приложение не содержит много бизнес-правил, вы можете избежать бизнес-уровня.Это зависит от проекта.
Также важно использовать принципы SOLID.Это сделает вашу архитектуру понятной, гибкой и обслуживаемой.Подробнее здесь .