Пояснения к прикрепленному графику

Assistent (что то похожее на interactor), но только смотрящее "в мир". Он слабо держит модуль Presenter, а так же имеет функции, которые видны всему приложению. Что то вроде "presentOnViewController" и "isCanShowNow". Концептуальные примеры. 

Presenter, как я указал выше, держит strong ссылкой Assistant (зачем объясню ниже) и его функция понятна - конфигурирует ViewController и обрабатывает события из него. 

VC - контроллер, держит strong ссылкой presenter

А теперь как выглядит цепочка взаимодействия: пользователь нажимает кнопку на VC - обработчик находится в Presenter. Из него уже идет обращение к Assistant, который дает ответ. На основе ответа presenter обновляет контролер. Все отлично.

Но вся эта схема -модуль. И по факту когда я его создаю - я создаю переменную. Например, SimpleAssistant. 

Далее конфигурирую поля, если нужно, и вызываю "presentOnViewController" (понятное дело скрыто протоколом, Assistant не знает какой презентер, у него просто набор функций смотрящих в приложение). Контролер презентует и все супер.

Но есть подвох. Как только я создам объект Assistant - тут же умрет контроллер. Он еще не презентован и его никто не держит. Можно конечно сделать так, чтобы ассистент держал презентер, а презентер держал контроллер, но есть момент - как только закончится зона видимости ассистента (к примеру, я его инитил в селекторе) - умрет ассистент и презентер. Контроллер будет жить потому что он в стеке. Но работать корректно без презентера и ассистента не будет. 

Необходимо переработать данную архитектуру (возможно вообще с нуля). После закрытия контроллера должен выгрузится весь модуль из памяти 

8 лет назад
ivanvorobei
30 лет
9 лет в сервисе
Был
2 года назад

Заявки фрилансеров

Нет заявок фрилансеров