Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 09.08.2013, 23:54
Babylon вне форума Посмотреть профиль Отправить личное сообщение для Babylon Посетить домашнюю страницу Babylon Найти все сообщения от Babylon
  № 161  
Ответить с цитированием
Babylon
[+1 25.10.13]
[+4 18.03.14]
 
Аватар для Babylon

Регистрация: Jan 2006
Адрес: Москва, Зеленоград
Сообщений: 653
Отправить сообщение для Babylon с помощью ICQ
Возможно и я когда-нибудь перейду на сигналы.

Старый 11.08.2013, 02:13
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 162  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
Интересная тема! Из неё я подчерпнул, что Babylon явно что-то дует.

У меня вот дерзкие мысли:
1) Модель имеет бизнес данные приложения. Степень абстракции сформулировать трудно, но её вполне можно чувствовать.
2) Вью полностью верит модели и отображает всё согласно ей.
3) Модель вполне сама может решить, что ей кэшировать (например, ресурсы на карте), а что спрашивать у сервера.

Отсюда я заключаю, что контроллер не нужен. Это лишний код, лишние связи. KISS and DRY!

А ещё есть классный принцип "we are all adults here". Это когда код пахнет розами, в нём нет шизофренических проверок "от дурака" и дураков к нему не допускают. А если кто-то делает глупость и всё ломается... Ну ничего, починим. Мы же здесь все взрослые. Мы пишем тесты.

Старый 11.08.2013, 04:01
Babylon вне форума Посмотреть профиль Отправить личное сообщение для Babylon Посетить домашнюю страницу Babylon Найти все сообщения от Babylon
  № 163  
Ответить с цитированием
Babylon
[+1 25.10.13]
[+4 18.03.14]
 
Аватар для Babylon

Регистрация: Jan 2006
Адрес: Москва, Зеленоград
Сообщений: 653
Отправить сообщение для Babylon с помощью ICQ
Я уж лучше с контроллером останусь и буду дальше "дуть".

Старый 11.08.2013, 06:37
Котейка вне форума Посмотреть профиль Отправить личное сообщение для Котейка Найти все сообщения от Котейка
  № 164  
Ответить с цитированием
Котейка
 
Аватар для Котейка

Регистрация: Aug 2013
Сообщений: 56
Цитата:
У меня вот дерзкие мысли:
1) Модель имеет бизнес данные приложения. Степень абстракции сформулировать трудно, но её вполне можно чувствовать.
2) Вью полностью верит модели и отображает всё согласно ей.
3) Модель вполне сама может решить, что ей кэшировать (например, ресурсы на карте), а что спрашивать у сервера.

Отсюда я заключаю, что контроллер не нужен.
Ай хитрите В вашей схеме контроллер и не нужен верно, или, если сказать точнее, можно без него обойтись. Добавьте в нее действия пользователя и понадобится контроллер

Старый 11.08.2013, 08:23
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 165  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
Вью может сама обработать действия пользователей. Это проще и логичней, чем гнать это в контроллер.

Старый 11.08.2013, 09:11
Котейка вне форума Посмотреть профиль Отправить личное сообщение для Котейка Найти все сообщения от Котейка
  № 166  
Ответить с цитированием
Котейка
 
Аватар для Котейка

Регистрация: Aug 2013
Сообщений: 56
Я бы такое назвал "Вью взяла на себя работу контроллера" и это уже будет не чистая вью Тот или иной интерфейс у модели может поменяться, в этом случае придется править и вью, что как бы является нарушением архитектуры паттерна.
Но, если смотреть на этот вопрос с другой стороны, никто же нам не диктует "Используйте чистую MVC и все тут", каждый волен делать так как ему удобнее. Хотя нет, вру начальство и общепринятые в команде правила все же порой диктуют.

Старый 11.08.2013, 12:12
Dukobpa3 вне форума Посмотреть профиль Отправить личное сообщение для Dukobpa3 Найти все сообщения от Dukobpa3
  № 167  
Ответить с цитированием
Dukobpa3
 
Аватар для Dukobpa3

блогер
Регистрация: Oct 2010
Адрес: Киев
Сообщений: 1,678
Записей в блоге: 12
Отправить сообщение для Dukobpa3 с помощью Skype™
Цитата:
Сообщение от Psycho Tiger Посмотреть сообщение
контроллер не нужен.
Вцелом как-то так. В последнем своем варианте я пришел к архитектуре с медиатором.
В итоге получается примерно следующее:
- есть обсервер. Через него общаются контроллеры. Можно сказать что то, что не попало в обсервер - не попадет на сервер.
- модель, собственно модель, логика в ней. При изменениях диспатчит события.
- вью тупая, слушает модель, рисуется согласно тому что в модели, диспатчит клики и прочее наружу.
- Медиатор умеет спамить в обсервер, но не умеет слушать. В медиаторе нет ссылок на модели. Медиатор слушает вьюхи, но не содержит логики. Может клик из вьюхи отправить на сервер, если это не требует логики, а просто отправки.
- Контроллер содержит ссылки на модели. Контроллер умеет спамить в обсервер и слушать из него. Контроллер слушает вьюхи, контроллер дергает какие-то паблик методы модели, просит ее обновиться, содержит какую-то логику, но не математику. Контроллер нужен там, где происходит НЕЧТО, которое выбивается из общей системы.

Есть пачка моделей, по назначению. Профиль игрока, лобби, статик данные.
Есть пачка вьюх, опять же по назначению. Окна, екраны, попапы.
Есть несколько медиаторов, один медиатор обслуживает однотипные вьюхи - медиатор попапов, медиатор окон, медиатор скринов.
Есть несколько контроллеров. Контроллер тутора, контроллер квестов, контроллер ГГ.

Вцелом небольшое приложение может обойтись одним контроллером, одним медиатором, одной моделью и тремя-пятью вью.
__________________
Кто к нам с чем для чего - тот у нас того от того.

Старый 11.08.2013, 14:20
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 168  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Я бы, наверное, обобщил так, что контроллер может содержать ту логику, для которой ему не нужны данные из модели (если такая бывает). Впрочем, и тут некоторые хитрят и заставляют Вью брать у модели нужные данные и только потом дергать контроллер, отдавая эти данные ему)). В целом же контроллер должен заниматься потоками и в некоторых случаях интерпретацией (переводом в нужный формат) данных, но не их логической обработкой (как, например, рассчетом столкновений).
Помещение логики в модель как раз и позволяет отказаться от тысячи открытых геттеров данных — [промежуточные] данные обрабатываются там же, где и хранятся, а отдаются только конечные результаты.

Добавлено через 17 минут
Обычно подразумевается, что Модель очень сложна и Вью очень сложна, и лучше их не трогать, если есть возможность. Контроллеров же может быть сколько угодно, они могут быть спортивными и легко изменяемыми. Их задача — сделать возможными любовные отношения между Вью и Моделью даже тогда, когда Вью берется из одного проекта, а Модель — из другого. В такой ситуации, конечно, допустимо и события из Модели ловить специальным контроллером и передиспатчивать их для Вью в том формате, под который написана Вью. Но это, конечно, нечастая ситуация)) Однако, она наглядно показывает роль контроллера вообще. Его роль — знать, какие действия из Вьюхи каким образом должны "менять" Модель. Точно так же, как любой [электронный] контроллер устройства преобразует некие физические события (замыкание/размыкание клавиши) в программные события, понятные Системе.
__________________
Reality.getBounds(this);

Старый 11.08.2013, 14:39
Babylon вне форума Посмотреть профиль Отправить личное сообщение для Babylon Посетить домашнюю страницу Babylon Найти все сообщения от Babylon
  № 169  
Ответить с цитированием
Babylon
[+1 25.10.13]
[+4 18.03.14]
 
Аватар для Babylon

Регистрация: Jan 2006
Адрес: Москва, Зеленоград
Сообщений: 653
Отправить сообщение для Babylon с помощью ICQ
...для выполнения команд контроллером.

Создать новую тему Ответ Часовой пояс GMT +4, время: 23:23.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 23:23.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.