Чем именно в MVC является Controller?
От: Аноним  
Дата: 12.05.08 16:38
Оценка:
Пишу игру.

Есть два класса.
Первый отображает игру на экране — это View.
Второй — реализует саму логику игры. По-идее же это Model, да?

Не могу понять необходимости Controller'а в моем случае...
И не понимаю что делает Controller в MVC вообще. Его __явную__ необходимость.
Re: Чем именно в MVC является Controller?
От: Кирилл Лебедев Россия http://askofen.blogspot.com/
Дата: 12.05.08 17:20
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Не могу понять необходимости Controller'а в моем случае...

В случае игры лучше говорить не об MVC, а о цепочке:

Принятие решений (AI) -> Управление -> Физика -> Поведение -> Визуализация
С уважением,
Кирилл Лебедев
Software Design blog — http://askofen.blogspot.ru/
Re: Чем именно в MVC является Controller?
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 12.05.08 18:58
Оценка: +1
Здравствуйте, Аноним, Вы писали:

А>И не понимаю что делает Controller в MVC вообще. Его __явную__ необходимость.

Не знаю как в играх, но в других случаях необходимости такие.
1)Модель только отдает данные (например DTO от сервера). За изменение данных и обновление связанных с ними Видов отвечает Контроллер.
2)Вид реализован на другом языке (например XSLT), тогда Контроллер получает данные от Модели и готови их к нужному виду (XML). Хотя это больше напоминает MVP.
3)Неявная необходмость. Логика контроллера может быть протестирована независимо от представления.
Re[2]: Чем именно в MVC является Controller?
От: Аноним  
Дата: 12.05.08 20:42
Оценка:
КЛ>В случае игры лучше говорить не об MVC, а о цепочке:
КЛ>Принятие решений (AI) -> Управление -> Физика -> Поведение -> Визуализация

Угу. Только еще осталось обосновать, чем это "лучше". И как этот частный случай flow control(?)
abstraction layers? "лучше говорит" или заменяет собой глобальную парадигму Model-View,
которая присутсвует в любой хорошо спроектированной игре. Втч. и в указаной цепочке тоже.

..Еще полезно подумать насчет применимости оной цепочки для Tetris'a, для Python'a,
Крестиков-ноликов...
Re[3]: Чем именно в MVC является Controller?
От: Кирилл Лебедев Россия http://askofen.blogspot.com/
Дата: 12.05.08 21:04
Оценка:
Здравствуйте, Аноним, Вы писали:

А>которая присутсвует в любой хорошо спроектированной игре. Втч. и в указаной цепочке тоже.

Простите, а Вы знаете такое понятие, как "игровой цикл"?
С уважением,
Кирилл Лебедев
Software Design blog — http://askofen.blogspot.ru/
Re[2]: Чем именно в MVC является Controller?
От: Aviator  
Дата: 13.05.08 04:48
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>Здравствуйте, Аноним, Вы писали:


А>>И не понимаю что делает Controller в MVC вообще. Его __явную__ необходимость.

G>Не знаю как в играх, но в других случаях необходимости такие.
G>1)Модель только отдает данные (например DTO от сервера). За изменение данных и обновление связанных с ними Видов отвечает Контроллер.
Это уже MVP. В MVC вьюшка следит за состянием модели, причём моделью обычно является некоторый фасад к доменной модели. В классическом MVC контроллер следит за состояние вьюшки, обрабатывая события из GUI.
Re[3]: Чем именно в MVC является Controller?
От: rsn81 Россия http://rsn81.wordpress.com
Дата: 13.05.08 05:26
Оценка:
Здравствуйте, Aviator, Вы писали:

G>>1)Модель только отдает данные (например DTO от сервера). За изменение данных и обновление связанных с ними Видов отвечает Контроллер.

A>Это уже MVP.
Нет, это пока только пассивная модель. MVC с пассивной моделью вовсе необязательно == MVP.

A>В MVC вьюшка следит за состянием модели, причём моделью обычно является некоторый фасад к доменной модели.

Угу.

A>В классическом MVC контроллер следит за состояние вьюшки, обрабатывая события из GUI.

А вот это неправда. В классическом MVC, в точности — в описании одного из авторов идеи MVC из Xerox PARC, представление командует контроллеру напрямую, там вообще представление достаточно много функций берет на себя.
Re[4]: Чем именно в MVC является Controller?
От: Аноним  
Дата: 13.05.08 11:39
Оценка: -2
А>>которая присутсвует в любой хорошо спроектированной игре. Втч. и в указаной цепочке тоже.
КЛ>Простите, а Вы знаете такое понятие, как "игровой цикл"?

Кирилл, дорогой, давай-ка ты бегом в детский садик, хорошо? Ты уже второй раз устраиваешь тут offtopic.
Для начала, научись хотя бы отвечать на вопрос топика, вопрос темы. осознать то что спрашивают, и отвечать именно на это. Это очень важно понять — что я задал именно определенный вопрос, и хочу услышать ответы касаемо именно MVC pattern.

...Я понимаю, что ты желаешь всенепременно подать тут свои свежеобретенные знания (ты узнал много новых слов, ты манипулируешь такой новой абстракцией, как Game Physics. Молодец, хвалю.)
Но еще раз — я задал вопрос только про это. Мои игры — 2D.
Framework давно разработан, c ним сделан ряд игр. Один из классов называется GameView, а второй GameController.
Недавно меня посетила мысль, что по-идее, это должен быть GameModel, а не GameController
Учитывая это (только 2D, готовый framework, несколько изданных казуальных игр) ты как минимум, пролетаешь со своими
"умностями" мимо тазика.

Поэтому, пожалуйста, отвечай людям только на те вопросы, которые они задают.
Не надо (c) "Показывать людям свои знания". Я в FIDO за много лет насмотрелся на таких по самое небалуйся.
И еще — не допускай когнитивной ошибки, полагая что тут "не знают понятия N".
Дорогой мой, к твоему вящему удивлению — существуют игры без "понятия" игровой цикл. На event-driven модели.
Представляешь, да? Примеры? Их есть у меня. От статичной логической игры типа "Lines", "Крестики нолики" которая не крутится в игровом циле, а ждет события, event'a от мышки, до 3D игры _типа_ Unreal, которая НЕ ИМЕЕТ игрового цикла, а внутри себя архитектурно обменивается сообщениями (втч сообщением от таймера UpdateWorld ).

Еще раз. Отвечай всегда только на то, что спрашивают.
Re: Чем именно в MVC является Controller?
От: Аноним  
Дата: 13.05.08 12:06
Оценка:
Благодарю отвечающих за начало плодотворной дискуссии.

Кстати — заметили?
В столь простейших паттернах, как MVC или MVP роль контроллера всецело и досконально понимается
отнюдь не всеми. И я в числе этих "не вполне понимающих". В целом как бы "всё понятно". Но конкретно..

p.s.
Конечно, wikipedia и Martin Fowler рулят, но иногда хочется услышать и соотечественников.

p.p.s.
Я понял — это намёк,
Я всё ловлю на лету
Но непонятно
Что конкретно ты имела в виду..
Re[2]: Чем именно в MVC является Controller?
От: Aikin Беларусь kavaleu.ru
Дата: 13.05.08 12:22
Оценка:
>В столь простейших паттернах, как MVC или MVP роль контроллера всецело и досконально понимается отнюдь не всеми.
Хе@#ссе, простейших. Ну ты сказанул... Я уже работаю с ними давно и все же еще не до конца их понимаю.
Кроме того, как уже было сказано много раз и где только можно, под MVC/MVP часто понимаются совершенно разные вещи (это особенно актуально для MVC). Именно поэтому Фаулер и вывел свой зоопарк про Наблюдающий конроллер, пассивную вью, ...
... << RSDN@Home 1.2.0 alpha 4 rev. 1067>>
Re[5]: Чем именно в MVC является Controller?
От: Кирилл Лебедев Россия http://askofen.blogspot.com/
Дата: 13.05.08 13:06
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Кирилл, дорогой, давай-ка ты бегом в детский садик, хорошо? Ты уже второй раз устраиваешь тут offtopic.

Ты в самом деле не понимаешь связи между:

Контроллер -> Модель -> View

и

Принятие решений -> Управление (Контроллер) -> Физика (Модель передвижения) -> Поведение (Модель поведения) -> Визуализация (View)

?
С уважением,
Кирилл Лебедев
Software Design blog — http://askofen.blogspot.ru/
Re[6]: Чем именно в MVC является Controller?
От: Аноним  
Дата: 13.05.08 18:58
Оценка:
КЛ>Ты в самом деле не понимаешь связи между:
КЛ>Контроллер -> Модель -> View
КЛ>и
КЛ>Принятие решений -> Управление (Контроллер) -> Физика (Модель передвижения) -> Поведение (Модель поведения) -> Визуализация (View)

Не-а, не понимаю. Реально не понимаю. А хочется понять..
Re[6]: Чем именно в MVC является Controller?
От: Аноним  
Дата: 14.05.08 09:35
Оценка:
КЛ>Ты в самом деле не понимаешь связи между:
КЛ>Контроллер -> Модель -> View
КЛ>Принятие решений -> Управление (Контроллер) -> Физика (Модель передвижения) -> Поведение (Модель поведения) -> Визуализация (View)

Ауу.. Кири-и-ил..
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.