#design-patterns #mvp
#шаблоны проектирования #mvp
Вопрос:
Я читаю о шаблоне Model-View-Presenter, и я немного смущен: может ли презентатор иметь состояние? Или задача докладчика состоит только в том, чтобы группировать методы, содержащие бизнес-логику, и каждая информация о состоянии должна быть помещена в модель?
Вот пример сценария: предположим, мне нужно представить сортируемый список элементов по страницам. В этом случае представление должно просматривать элементы. Докладчик должен загрузить элементы для просмотра в модель. Куда должны идти 2 переменные состояния (тип сортировки и индекс текущей страницы), должны ли они считаться состоянием презентатора или частью модели?
Ответ №1:
Это явно не состояние приложения, а состояние просмотра. Не только потеря этого состояния не причинит большого вреда, но и не повлияет на бизнес-логику.
При этом я бы без колебаний поместил это дополнительное «состояние» в presenter или даже в view. Вероятно, вы реализуете это, используя либо HTTP-сеанс, либо файлы cookie на стороне клиента — эти стратегии сохранения, очевидно, предназначены для просмотра.