Цитата:
|
Этот камушек преткновения появляется, когда Модель недостаточно абстрагирована и вам кажется, что она должна хранить всякую чушь. Но она не должна. Действительно не должна. Если какие-то вызовы и передачу данных Вам удалось сделать внутри Вью минуя Модель, значит для Модели это и была чушь. Значит, так И НАДО БЫЛО делать. Это не исключение, это и есть норма. Модели это не надо — ну и отлично. Вью должна уметь сама разбираться со своими внутренними проблемами. Модель не обязана помнить все состояния кнопочек при движении мышки по экрану и прочую лабуду. Это не данные уровня Модели. Это данные уровня Вью.
|
Как бы получилось немного не по делу наверное ответ, так как я не сказал о чем речь. Попробую пояснить.
Имеется меню. В котором есть чекБокс допустим, я выбираю состояние, это все во вью. Благодаря тому, что я выбрал состояние, модель должна запомнить это состояние и дальше произвести несколько своих операций, разослать события в другие вью и т.п. - не суть, архитектура допустим большая.
Так вот по парадигме я должен сделать следующее : разослать событие из ВЬЮ в контрол, где сообщить какое состояние выбрано и затем запустить метод модели. Это долгая операция, но она вполне оправда в контекте МВС. Но в данный момент, допустим это разовое дело, КОГДА вью должно в итоге загрузить модель, в остальных случаях - вью только слушает модель. Посему я разрешил себе написать model.nextGen() / model.prevGen() из вью, где выбрано состояние, чем осуществлять ДОЛГИЙ подход через контроллер. В данный момент я и назвал такой вид, как вид-контроллер по сути. Но я повторил, что это разовая практика, я так не делаю, только в 1 проекте позволил - и не увидел проблем, а только плюсы. Опять же зависит от масштабности проекта, но все же..