Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   MVC: грамотная архитектура проекта (http://www.flasher.ru/forum/showthread.php?t=203620)

Babylon 01.10.2013 15:01

Я считаю, что отдельно стоящая Модель это спекулятивное понятие.
Модель для логики NodeLogic должна обновляться, анализироваться и отдаваться и всем этим занимается контроллер Модели. Такие же модели должны существовать на уровне сервисов и видов. Соответственно первые обновляют данные для логики и вида, а вторые для логики и сервиса.

Добавлено через 12 минут
Т.е. данные для логики обновляются по событиям вида или сервиса, ей передаются условно актуальные NodeView или NodeService в формате JSON || XML.Это кому как нравится.

Dukobpa3 03.10.2013 20:06

Паттерн XML-MVC в действии.

Добавлено через 4 минуты
Касательно выстрела.
Задачу подобную решал но это не совсем выстрел был.

Это была клиент-серверная модель с логикой на сервере (в модели).
Математика сервера обновлялась раз в секунду. Вью(клиент) рисовалась как там ей удобно, со своим фпс.
И вот раз в секунду все значения вью(модели клиента) перезаписывались новыми значениями с сервера, т.е. просто периодическая синхронизация происходила.

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

т.е. получается мы и красоту видим, и математика не ломается, и вью ничего не решает.

Babylon 03.10.2013 21:29

Вью ничего не решает, но она может подействовать на логику и пройти дальше на сервер. Допустим, если у игрока попытки кончились логика может сразу выдать для своего вида событие GAME_OVER, но вот должна ли?
Игры все таки лучше делать как вебсервисы и логика должна меняться от серверных событий, а не по событиям лейаута. Хотя на первый взгляд кажется, что так проще :)

Akopalipsis 09.10.2013 16:48

Начав читать небольшое описания шаблона MVC, я сразу понял что читать нужно всю книгу и о всех шаблонах. Прочитав и переписывая все примеры из книги ( переписывал для того, что сразу я не смогу запомнить и понять смысл всего, а наглядные примеры помогут восстановить в памяти книгу ) у меня появилось ещё больше вопросов... Но я задам только два, первый - почему все с радостью обьясняют о работе MVC, но не кто не говорил, что это не шаблон, а набор шаблонов?) Ведь говорить о MVC нельзя не зная другие шаблоны)
И второй - может знает кто нибудь, где можно посмотреть пример грамотного MVC? Сейчас я по другому смотрю на RL и мне кажется, что это именно то что и будет грамотным, но всё же очень хочется посмотреть, что такое много моделей и много контроллеров. Потому что в моей голове складывется картина, что главные фигуранты должны быть чем то абстрактным.

Dukobpa3 09.10.2013 17:21

MVC - архитекрутный паттерн.
Он самодостаточен.
Но, что очевидно - когда вдаетесь в дискуссии об архитектуре , подразумевается что к этим самым дискуссиям уже готовы, т.е. определенный набор задач решать уже приходилось, и хоть сколько-нибудь знакомы с методами их решения.
Вот и получается - чтоб говорить об архитектуре - нухно хоть немного понимать другие паттерны.
И MVC - не исключение. Так что я могу подитожить что тут вопрос не в MVC, а в самой тематике беседы.

Примеры грамотного мвц есть в вики:) И пример грамотного мвц это три класса - контроллер-вью-модель, ты уже и сам такой же написал в другой теме. Но реальные задачи обычно состоят из пачек классов, и тут уже вопросы другого уровня.

Akopalipsis 09.10.2013 17:34

Цитата:

и тут уже вопросы другого уровня.
Вот как раз я наверное и дошёл до этого уровня. Все мои вопросы с примером трёх классов были лишь для того, чтобы грамотно спросить об самой архитектуре. Но я не знал что спрашивать, так как не знал правильных терминов. Теперь я более менее осведомлён и хочется уже говорить о MVC в глобальных масштабах. Но я пока несколько дней уйду в повторное чтение и попробую сам что то сделать, чтобы было о чем говорит. Всё таким сложным кажется...

in4core 09.10.2013 17:42

Akopalipsis - я вообще не понимаю, как можно перейти на MVC без начального понимания происходящего. По крайней мере, нужно сначала научится делать обычные приложения, не на MVC, совершенствуя себя, понимать, что такое фабрика ( вот уж она точно везде ) и т.п. Разобраться с событиями и их составляющими . И только когда есть определенный опыт в программировании вообще, переходит на MVC - сама природа позовет. По крайней мере у меня так было.

Akopalipsis 09.10.2013 17:50

Цитата:

Akopalipsis - я вообще не понимаю
А я не могу понять, как создание чего то простого может приблизить к MVC? Зачем учится неправильно?

Dukobpa3 09.10.2013 17:54

Дада, Инфокор вон постиг дзен:)

Цитата:

Зачем учится неправильно?
Не учиться не правильн, а просто учиться, хоть как-то. На реальных задачах. Академические знания без реального применения - как с гуся вода.
А вот когда попробовал сделать это - получилось некрасиво.
Попробовал сделать это - не получилось.
Попробовал сделать это, но интуиция подсказывает что можно ведь лучше.

Тогда уже и знания в помощь будут.

Akopalipsis 09.10.2013 19:14

Вопрос именно технический - Синглтон, класс который создается единожды и всякий раз возвращает созданный ранее экземпляр. В примерах про него говорилось, как о наиболее частом в применении и про его применение говорили, что он подходит для ведения счёта игры и прочего. Но на форуме я не один раз читал, что его мало кто использует. И появляется вопрос - уделяют ли значение этому шаблону опытные разработчики, то есть Вы, или стоит забыть о нём и помнить, что для этих нужд есть модель ( сохранять значение в свойство ) ?


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

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