![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Шаблон призван обеспечить гибкость, сохранив строгий порядок.
То, что предлагаете Вы – убивает гибкость (независимого создания вьюх) и уничтожает порядок (необходимостью создания множества контроллеров). Я так это вижу, слегка со стороны. Предлагаю и Вам чуть отстраниться от хаоса в редакторе кода и посмотреть со стороны. Прежде всего должна быть здоровая, крепкая система без странных отростков и необходимости промежуточных прослоек. Конкретика: Если изменение состояния кнопочки требует согласования с Моделью, то зачем делать путь Вью - Контроллер -(согласование)- Модель - Контроллер(???) - Вью?
__________________
Reality.getBounds(this); |
|
|||||
|
Регистрация: Nov 2010
Сообщений: 497
|
in4core
Ну хорошо. Рассмотрим ваш пример. Вообще, странно, что контроллер на запрос "получить данные" меняет состояние модели... Метод с таким именем должен данные только отдавать. Вот у вас есть два метода - on*GetData. У вас одновременно на экране два View (global и view1). Пользователь открывает еще одно view (view2, наверное). Вызывает свой аналогичный onController2GetData. Затем что-то меняет в модели, выполняет действие, которое таки изменяет глобальную модель (те самые vars). Например, игрок выпивает бутылочку с элексиром яда. Вызовется onController2GetData(), возможно, он даже установит переменные в globalModel. Внимание, вопрос: как globalView и view1 узнают о том, что модель изменилась и что нужно изменить отображение? По вашей схеме onController2GetData() не будет обновлять globalView и view1. Кто их будет обновлять? (от событий модели вы отказались) Они у вас одновременно открыты, действие строго локально только во втором контроллере. И вообще, ситуация, когда к одной модели есть несколько видов и набор этих видов динамически меняется - вполне типичная. Могут открываться окна с дополнительной информацией. В каких-то случаях по модели собирается статусная информация и т.п. И каждый такой вид в общем случае не знает, сколько и какие виды могут быть еще активны для тех же данных. |
|
|||||
|
Цитата:
![]() есть 3д модель на эту одну модель можно посмотреть с 4 разных сторон, и кроме того одновременно мы видим панель свойств, это тоже вид, только модель там видна не как 3д объект а как набор параметров итого получается 5 видов на одну модель теперь представим что пользователь поменял модель, естественно он мог сделать это только в одном из видов, при этом приложение мгновенно отображает изменения сразу везде думаю дальше всё само собой становится очевидно...
__________________
Хороший отдых - половина работы. |
|
|||||
|
[+4 06.05.14]
|
artcraft с твоим примером понятно, один ко многим, тут да согласен выгоднее писать по парадигме, нежели создавать много связей. Мой же пример немного проще.
Всем спасибо узнал много нового. тему можно в архив
__________________
Марк Tween |
![]() |
![]() |
Часовой пояс GMT +4, время: 00:36. |
|
|
« Предыдущая тема | Следующая тема » |
|
|