Учитывая Uncle Bob's Clean Architecture (или лукового Architecture)Моделирование Использование на Чистой архитектуру дяди Боба
У меня есть следующий сценарий:
- Я хочу, чтобы показать пользователь, информация о месте: названии, категория, координат.
- Я также хочу, чтобы на том же экране была нажата кнопка, которая при нажатии на нее перенаправляется в приложение карты, показывающее местоположение этого места.
Для перенаправления на приложение Map есть простой API-интерфейс Framework, который получает координату.
Для первой проблемы у меня должен быть RetrievePlaceInformationInteractor
(прецедент), который получит идентификатор места и вернет имя, категорию и координату.
Но для второй задачи, я не знаю, должен ли я:
- имеет отдельный
OpenPlaceInMapInteractor
(случай использования), что бы получить место идентификатора и возвращает координату для использования этой рамочной API вPresenter
. - имеют отдельный
OpenPlaceInMapInteractor
(прецедент), который получит идентификатор места и использует этот API-интерфейс для перенаправления на приложение Map. - используйте тот же самый
RetrievePlaceInformationInteractor
, чтобы получить координату и заполнить ее в обратном вызове, который вызывает API фреймворка, и это будет вызываться при нажатии кнопки OpenInMap.
Первый кажется немного глупым, поскольку он по существу является интерактором только для извлечения одного свойства, которое уже извлекается другим взаимодействием.
Второе направление: OpenPlaceInMapInteractor
для доступа к API фреймворка, который, как правило, поражает цель уровня взаимодействия, не обращаясь к вышеуказанным уровням (конечно, я мог бы использовать протокол для API и использовать инъекцию зависимостей, но все же, m, полагаясь на специфическую структуру).
Третий кажется разумным, но разве я не буду использовать 2 варианта использования в одном?
Что мне делать?
спасибо.
Но что должен делать «OpenPlaceInMapInteractor»? Должен ли он возвращать координату? Если это так, то они возвращают одно и то же (по крайней мере, «RetrievePlaceInformationInteractor тоже возвращает координату) –
Я думал, что вам нужно вернуть перенаправление в какое-либо приложение карты. Нет? –
это приложение для iOS, а не веб-приложение. А перенаправление осуществляется через API iOS. Для этого API требуется только координата. –