Показать сообщение отдельно
Старый 31.10.2013, 18:58
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 1  
Ответить с цитированием
in4core
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
Цитата:
А плохой код это когда у вас вью начинает считать логику, а контроллер подписывается на модель.
Так в MVP - вью не считает логику ни в коем случае, а контроллер не подписан на модель. Причем тут это? Разговор шел только про то, что при получении данных... ну вот даже пример. Контрол послал запрос на сервер о получении данных, получил - 5 данных нужны для модели ( по ним будет проход логики, рассчеты и т.п. в модели) а 1 переменная просто текстовая строка, которую надо отобразить в поле, в моделе ей делать НУ просто нечего! И вот тогда контроллер при получении даты дергает метод вью view.showHeader(e.vars) - в чем тут плоховизна кода и запутанность? Более насущный пример : чат в игре. Простой чат рассмотрим, просто текст, который надо обновить, опять же в моделе хранить его нечего, если не планируется с этим текстом ничего делать, а просто отобразить в поле. Опять же view.updateChat(e.vars) - пришедшие с сервера на on ( сообщение ) . Это не просто нормальная практика - она логична, чем записывать ненужную инфу в модель, подписываться видом на обновление этого свойства и делать 3йю связь( cotrl - model - view), вместо 1ой.

Добавлено через 3 минуты
То есть использование MVP на практике - это в некоторых случаях необходимость, данность. Уменьшает связи ( а мы за это болеем!) упрощает понимание. Понятное дело, что большая часть данных с сервера нужна в модели , но как я уже сказал меньшая часть там просто не нужна, но интерпретировать ее надо
__________________
Марк Tween