Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Статьи (http://www.flasher.ru/forum/forumdisplay.php?f=101)
-   -   Хорошее MVC (http://www.flasher.ru/forum/showthread.php?t=138349)

Psycho Tiger 08.04.2010 19:47

Суть понял, однако древовидные модели применять пока не буду - не представляется в данный момент нужным.

Спасибо большое, теперь я разобрался. Наверное, в усвоении сейчас поможет только практика. Ещё раз огромное спасибо)

cpu 08.04.2010 23:01

Цитата:

Сообщение от cpu (Сообщение 898640)
в model-и есть set-метод и get-метод.
Как сделать, что бы view НЕ мог работать с set-методом, но мог работать с get-методом? И при этом открыть доступ к обоим методам controller-у?

ответил etc, что через интерфейс IModel.
=============================================
Если кому не лень, напишите в коде как это будет выглядеть.:rolleyes:

Psycho Tiger 08.04.2010 23:29

Код AS3:

package game 
{
        public interface ILandMovable
        {
                function get line():int;
        }
 
}


fljot 11.04.2010 13:14

А ещё часто пишут, что модель занимается бизнес-логикой.
Вот пример — видеоплеер. Заканчивается проигрывание видюшки, модель диспатчит соотв. событие. Кому лучше дальше принять решение проигрывать ли следующее/случайное видео из списка или остановится? На основании какого-нибудь mediaPlayer.config.repeatMode и mediaPlayer.config.shuffle ?

etc 11.04.2010 19:11

Цитата:

Сообщение от fljot (Сообщение 899578)
Кому лучше дальше принять решение проигрывать ли следующее/случайное видео из списка или остановится?

Контроллеру.

dimarik 13.04.2010 01:06

Цитата:

Сообщение от mexoboy (Сообщение 898587)
Тут собственно все описано: http://www.books.ru/shop/books/352130

Замечательная книжка. Только я не нашел там описание MVC в качестве паттерна. Дальнейшие рассуждения об "оригинальности" "паттерна" MVC считаю актом вероломства.

Psycho Tiger 13.04.2010 01:40

Кстати, вот сейчас интересный вопрос постиг:
Делаю игру, она 2.5д-шная, позиционирование объектов идёт как в 3д, но объекты являются уже отрисованными картинками и они просто поворачиваются нужным кадром к зрителю, создавая эффект 3д (короче, поворот на 360 кадрами мувиклипа, и крутим как будто бы в 3д). Странное чувство, но я уже даже не представляю, как это можно сделать без MVC... он чертовски заразный :D

Дак вопрос в чем - камера следует всегда за игроком и её можно крутить (только в одном направлении, конечно, иначе пререндер не имел бы смысла). В движке я переопределил методы поворота камеры с изменением модели PlayerModel (как никак это камера от игрока, поэтому туда засунуть считаю допустимым) и её же передаю другим объектам, которые должны крутится (чтобы они знали, когда нужно повернуться и куда). Это допустимо с точки зрения MVC, передавать не свою модель?

Котяра 13.04.2010 09:31

Если вид зависит от PlayerModel - то это его модель тоже. Вообще разделение на "своя" - "не своя" условно. Но на вашем месте я бы вынес данные о камере в Model.cameraData - для более читабельного кода. тогда CharacterView [i] следит за Model.characterData[i] и за Model.cameraData, что вполне логично.
Тут, кстати, пригодилась бы древовидная реализация модели с всплывающими событиями..

Tahion 13.04.2010 13:56

Цитата:

Сообщение от dimarik (Сообщение 900065)
Замечательная книжка. Только я не нашел там описание MVC в качестве паттерна. Дальнейшие рассуждения об "оригинальности" "паттерна" MVC считаю актом вероломства.

Да неплохая, она у меня даже есть :). Но вобщемто там многие патерны не описаны существующие)

Psycho Tiger 13.04.2010 15:56

Цитата:

Тут, кстати, пригодилась бы древовидная реализация модели с всплывающими событиями..
Можешь объяснить, что и куда? Я не понимаю, куда там дерево =\

Цитата:

Но на вашем месте
Давай на ты, вроде не первый день общаемся?

И да, у меня только один большой MVC, отвечающий за игрока и камеру, мелкие объекты вроде партиклов вообще идут одни классом, посложнее - а ля такие же юниты, как игроки - связкой V + MC. Может быть, это идиологически неправильно, но я руководствовался здравым смыслом.


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

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