![]() |
|
||||||||||
|
|||||
|
Banned
[+4 24.02.14]
[+4 07.11.13] [+ 13.03.14] Регистрация: Mar 2013
Сообщений: 1,864
|
KumoKairo Спасибо за разъяснения! Тогда вопрос для закрепления темы -
Контроллер имеет ссылки и на модель и на вью. Контроллер напрямую меняет модель. Модель по изменению диспатчит вью. Вью диспатчит контроллеру. Контроллер не касается вью. Модель не касается контроллера. Где мои ошибки? |
|
|||||
|
Контроллер может менять вью, контроллер может напрямую менять модель.
Но модель должна быть максимально инкапсулирована от контроллера. Т.е контроллер к примеру имеет доступ только к одному паблик методу модели fillData() - он может его дернуть и модель сама себя обновит оттуда откуда сама знает. Контроллер может при необьходимости что-то напрямую дернуть во вью, хотя бы те же show()|hide() - но такое влияние контроллера на вью нужно свести к минимуму,если не искоренить полностью. В остальном да, всё верно. К тому что ты описал нужно стремиться, на практике не всегда аж так идеально получается, но таки да - это и есть идеальная картинка.
__________________
Кто к нам с чем для чего - тот у нас того от того. |
|
|||||
|
Banned
[+4 24.02.14]
[+4 07.11.13] [+ 13.03.14] Регистрация: Mar 2013
Сообщений: 1,864
|
Цитата:
Добавлено через 3 минуты Dukobpa3 Дело в том,что Ваши слова, слова Wolsh и многие страницы тем о этом патарне я интерпретирую так, как написал выше. Но остальных я в упор не понимаю. |
|
|||||
|
Цитата:
Да, контроллер имеет доступ к паблик методам модели. Но их должен быть минимум. Напрямую меняет модель это не: model.counter += 1. Это model.parseDataFromServer(data). А модель уже сама распарсит и сама разберется что в этом месте надо сделать counter += 1, а вот здесь dispathEvent(ModelEvent.CHANGE) Добавлено через 1 минуту Это и будет называться "логика в модели". Все цифры в модели. Контролер не понимает откуда берется +=1 или -=1. Контроллер просто знает что "поступили новые данные, модель должна обновиться."
__________________
Кто к нам с чем для чего - тот у нас того от того. |
|
|||||
|
Banned
[+4 24.02.14]
[+4 07.11.13] [+ 13.03.14] Регистрация: Mar 2013
Сообщений: 1,864
|
Цитата:
Цитата:
Добавлено через 38 секунд Мне вообще очень понравились интерфейсы. |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Контроллер передает Модели пожелания пользователя))) Не "положи этот Бэнтли в корзину", а "юзер хочет положить этот Бэнтли в корзину". А может ли юзер себе это позволить, и — окажется ли в корзине еще один Бэнтли — это уж модель сама решит.
p.S. Котейка, а зачем модель диспатчит что-то для Вью через контроллер? Без него никак что ли?
__________________
Reality.getBounds(this); |
|
|||||
|
Banned
[+4 24.02.14]
[+4 07.11.13] [+ 13.03.14] Регистрация: Mar 2013
Сообщений: 1,864
|
И я не в коем случаи не хочу, чтобы Babylon подумал, что его слова о реже использовать я принил как лженауку. Нет, он мне кажется просто грубо выражается и описывает то, что как по словам цитированными мной в этой теме - интерфейсы начинают использовать на право и на лева.
Но это такое искушение) |
|
|||||
|
[+1 25.10.13]
[+4 18.03.14] |
Котейка, Уолш и так мелко разжевал. У Вас мельче не получится.
|
|
|||||
|
Цитата:
Там где куча хлама можно использовать как нечто одинаковое. Если ты хочешь написать один контроллер, который будет работать со всеми без исключения моделями - то возможно интерфейсы спасут. Но я абсолютно не уверен что это хороший вариант. Контроллер ЗНАЕТ свою модель. Не нужно делать для этого контроллера возможность работать с кучей моделей.
__________________
Кто к нам с чем для чего - тот у нас того от того. |
![]() |
![]() |
Часовой пояс GMT +4, время: 13:34. |
|
|
« Предыдущая тема | Следующая тема » |
|
|