![]() |
Ваша реализация MVC
Сабж. Кто знаком с MVC, можете описать как вы его реализовывали в своих проектах? Интересует не фреймворки типа pureMVC, а авторские ) разработки.
|
Вложений: 1
Диаграммы рисовать не умею, поэтому красиво не получилось.
|
ыыы) сразу все понятно всем стало))
Если не секрет это что за проект? |
В Destiny такая схема. Правда там серверов и соединений больше.
Само собой что это просто схема, в реальности контейнеров, вьюверов и контроллеров больше. |
О! Спасибо, очень интересно.
|
Вот, еще вариант, без схемы, просто пример:
Код AS3:
Код AS3:
http://code.google.com/p/e4xu/source...wvxvws/mapping |
etc, не мог бы ты описать назначение/функции основных элементов на диаграмме, или хотя-бы какие-нибудь общие пояснения дать. Если бы пример увидеть собранный на основе этой архитектуры, было бы совсем здорово.
|
Назначение всех элементов очевидно, Controller — контролировать, принимать данные, создавать данные, вьюверы и т. п., Data/DataContainer/DataBase — хранить эти данные, слать события об изменении, View — соответственно отображать эти данные, слать события. Скажем, на этой архитектуре работает http://vkontakte.ru/app1641048_1234202
Плюс ещё пара игрушек, ну и Destiny само собой. |
Было бы интересно узнать от автора, почему он не стал пользоваться pureMVC?
|
Потому что я сейчас пользуюсь pureMVC и он мне не нравится.
|
Чем именно не нравится?
|
Излишней сложностью. Зачем нужно было реализовывать паттерн обсервер, если есть листенеры? Он захламляет проект. Появляется куча разных классов, в которых трудно разобраться другому кодеру. И когда я с ним работаю меня не покидает ощущение какой-то кривизны )
|
Спасибо за развёрнутый ответ, сейчас читаю инфу по PureMVC и думаю, нужно ли оно мне.
|
Мне кажется, PureMVC популярен потому что на это работает название и его картинка с блок-схемой. «О, круто, MVC! Да ещё Pure. Ну ваще, наверное шыкарная штука, не зря же она так называется. Вау, какая клевая картинка, как все круто нарисовано, WOW!. Ух ты, тут куча умных слов и шаблонов! Ну всё, буду юзать, теперь я тру-флешер!» — рассуждения среднестатистического флешера.
|
etc, спасибо за хорошее настроение :)
Мысли среднестатистического флешера переданы очень точно) |
etc, а ты не можешь сказать как у тебя происходит создание например view-компонента? Родитель диспатчит кастом событие что хочет чилда, контроллер его ловит и создает и чилда, и data, что ему соответствует? Или как?
|
Есть DataContainer, его отображает и слушает некоторый View, который умеет делать детей-вьюшек. Как только в DataContainer попадают новые данные, новая Data, вызывается событие ADDED (по аналогии с моделью DisplayObject), которое всплывает от Data до DataContainer и далее. Этот ADDED ловит View и создает очередную мелкую вьюшку и отдает ей ссылку на эту Data.
Или вопрос о создании основных вьюверов? |
Нет, понятно, спасибо.
|
Блин, как радует что я не среднестатистический)
etc схема которую ты приводил, это обобщеная схема всего дестени? или только какого то отдельного модуля? |
Это просто схема связей между элементами различного рода. В реальном приложении контроллеров, структур данных и вьюверов больше, но общая иерархия соответствует схеме. Рисовать ту же схему Destiny я замучаюсь, там одних только различных DataContainer с несколько десятков.
|
первый раз увидел нашу картинку так развёрнуто )
|
А я как удивился, что Денис начал документацию готовить =)
|
Не начал, не дождетесь :quiet:
|
когда я пытался это изобразить, кажется, получилось всего 7 кружочков ( и то, кажется, они были квадратные ).
|
И не пытатесь, тут нужен оо-художник, а не оо-программист. :)
|
Цитата:
|
Ну, коли так - больше примеров, тем паче. Когда-то я задавал подобный вопрос (год-полтора назад) с просьбой-предложением показать пример схемы практической реализации паттерна, хоть какого, и вот, дождался же..
ЗЫ. Я знаю об это штуке .. но Денис, по-моему, вдохновился не от нее..:) |
Цитата:
|
Цитата:
|
купили?
|
я имею ввиду методику (uml), а не конкретную программу (пробовал trial версию)
|
Цитата:
Это она мне рисует uml по написанному коду, используется для "написания":) документации и осмотра всей архитектуры если запамятовал. Цитата:
|
Цитата:
Выводы o pureMVC c Flex-конференции UAFPUG во Львове. «В ходе обсуждения я понял, что часто задаваемый вопрос "где применять PureMVC" некорректен. Не "где", а "кому" применять PureMVC — вот что важнее! Почему: фреймворк PureMVC очень акцентирован идеологически. Его создатель — академик ООП, и это видно по самому фреймворку и документации к нему, даже по названию. Отсюда вывод: PureMVC рекомендуется адептам акдемического подхода. Поклонникам нордического, строгого и безжалостного к слабостям индивидуальных разработчиков ООП. Перфекционистам, которые хотят не только делать проект, но и превращать его в Памятник Программной Архитектуры для Восхищения и Поклонения ценителями и знатоками. Уверен, что лучшие результаты PureMVC даст именно в руках таких людей, которые способны его расширять конкретно для своего проекта, например, типизировав Оповещения. Избавившись от всего нетипизированного и соорудив Идеальный ООП- Аппарат для Этого Конкретного Проекта. Короче говоря: осмысленное превращение абстрактного PutreMVC в конкретное MyPureMVC даст адептам ООП лучший результат и наслаждение. Остальным даст головную боль. И больше тут не о чем спорить.» Добавлено через 8 минут От себя. После третей реализации своего MVC, появилось ощущение что изобретаю велосипед. Посмотрел другие MVC реализации. Остановился на PureMVC. Он логичен, и изящен с точки зрения ООП. И чем дальше копаю тем больше нравиться. |
be simple )
Любой паттерн или архитектура, нужен только по мере надобности, mvc ради mvc - зло! pureMVC ради pureMVC - зло в квадрате! |
продолжу. ООП ради ООП это зло. Флеш ради флеша тоже зло, и программирование ради программирования, дальше вы знаете..
|
только "жить - ради жизни" хорошо!)))))))
ну и "пиво - ради пива" - тоже)))) |
__etc
А как реализован баблинг событий в классах данных? |
Также, как в DisplayObject-ах. Функционал точно такой же.
|
Классы данных наследуются от DisplayObject, а дерево строится через addChild ?
|
Нет, не наследуются, упаси боже. Дерево да, addChild/removeChild, всё также.
|
| Часовой пояс GMT +4, время: 21:21. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.