Где должен быть таймер в архитектуре Viper

Предположим, что каждые 10 секунд нам нужно обновлять наши данные. Где мы должны создать/хранить таймер и где он будет запускать связанный с ним метод в архитектуре VIPER? Должен ли ViewController делать это и информировать ведущего? или Presenter должен держать таймер? Спасибо!


person user3020463    schedule 20.07.2018    source источник


Ответы (3)


Обновление данных — это не то, чем должны заниматься Presenter или Controller. Presenter (как следует из названия) должен контролировать только презентацию и прочее. в архитектуре VIPER Interactor отвечает за обработку логики, и «Обновление каждые 10 секунд» звучит как логика для меня. поэтому таймер должен быть Interactor и при пожаре должен информировать Presenter, затем Presenter информировать Controller соответственно. (Если вы думаете, что это слишком шаблонно, то это просто VIPER)

person farzadshbfn    schedule 20.07.2018

Вы можете создать и сохранить таймер в классе 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

person Derek    schedule 20.07.2018

Класс Interactor позаботится о таймере в архитектуре VIPER.

person Muhammad Haris    schedule 21.07.2018