Предположим, что каждые 10 секунд нам нужно обновлять наши данные. Где мы должны создать/хранить таймер и где он будет запускать связанный с ним метод в архитектуре VIPER? Должен ли ViewController делать это и информировать ведущего? или Presenter должен держать таймер? Спасибо!
Где должен быть таймер в архитектуре Viper
Ответы (3)
Обновление данных — это не то, чем должны заниматься Presenter
или Controller
. Presenter
(как следует из названия) должен контролировать только презентацию и прочее. в архитектуре VIPER Interactor
отвечает за обработку логики, и «Обновление каждые 10 секунд» звучит как логика для меня. поэтому таймер должен быть Interactor
и при пожаре должен информировать Presenter
, затем Presenter
информировать Controller
соответственно. (Если вы думаете, что это слишком шаблонно, то это просто VIPER)
Вы можете создать и сохранить таймер в классе Interactor.
Michal Wojtysiak @ swifting.io написал об этом хорошую статью здесь: https://swifting.io/blog/2016/03/13/9-how-to-invalidate-nstimer-properly/?utm_source=swifting.io&utm_medium=web&utm_campaign=blog%20post
Класс Interactor позаботится о таймере в архитектуре VIPER.