Форум 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=148681)

Wolsh 09.01.2011 22:03

Цитата:

Wolsh системные окна об ошибках должен бы давать команду показывать контроллер, когда это было функционалом модели?
О том и речь. Эта фраза была обращена к Джеку, утверждающему что никаких контроллеров нет и не надо. И лично мне это кажется больше похожим на "религию"))
Кстати про таскаемые точки с пересекающимися линиями я так и не понял, зачем что-то должно меняться в Модели и на что там должен реагировать Контроллер, пока точку не отпустили. Ну подсвечиваются линии при пересечении - Вью имеет на это право, но пока нет Состояния, а только какие-то игры пользователь/вьюха, пользователем и вьюхой все и ограничивается. Когда точка отпущена и заняла новое место (состояние!) - тогда и происходит логический пересмотр, собрал ли пользователь фигуру, или хотя бы получил меньшее/большее число пересечений - очки. Это анализирует контроллер. Для меня "тогда модель определяет пересечения и диспатчит сообщение о необходимости изменения" - кому? Кому интересны эти временные изменения при драге, которые НИКАК НЕ МЕНЯЮТ модель, пока не произошел дроп. Так же как шахматист таскает фигуру над полем - кому это интересно, пока он ее не поставил = сделал Ход. Каким боком это касается Модели, объясните мне. Клеточки подсвечиваются, за фигуркой летит шлейф снежинок, вражеские фигуры в ужасе закрываются щитом - все это дела Вьюхи, и только ее, пока не будет совершено Действие, требующее изменение Состояния Модели. Может, это и религия - но как по мне, так - чистейшая логика. Я вообще ни разу не озадачивался создавать тру MVC - у меня это деление как то само собой получается, ибо оно логично. И я тут не пропагандой какой-то занимаюсь или холиварами, а пытаюсь ответить Джеку, что же такое контроллер.

JackFromChaos 09.01.2011 22:25

2Wolsh: Какая нафиг религия? Если бы вы внимательно читали, то заметили, что я сказал, что решил попробовать поработать по классической MVC, естественно с контроллером(альтернатива для меня, т.е. то как я ранее работал, это Document-View. Даже скорее архитектура .Net). При этом меня продолжали убеждать что я несу ахинэю, и усиленно убеждать в том, что классический MVC, с тонким контроллером это не правильно... По сути пропагандируя мне даже не MVC, а некоторое собственное понимание...

Про точки объяснять даже не хочу пытаться, я уже отсюда вижу что это вызовет очередную волну не конструктивного спора... Потому как на лицо либо не понимание, либо мы странным образом перенос очередной порции логики не только в контрол, но и о вью... Блин, опять меня понесло...

В общем диалог был поучительный, хотя и не такой конструктивный, как хотелось бы. С другой стороны он меня таки сподвигнул на внимательное изучение MVC. Плюс жена помогла:) Например понять, что программисты решающие разные задачи зачастую видят архитектуру очень узко, видя свои типовые задачи... В результате бывает довольно сложно друг друга понять.(просто она на своей работе занимаются классическими, клиентскими ММО и сетевыми играми, а я ближе в данный момент к особенностям реализации броузерок и социальных игр, а подходы довольно сильно отличаются. И хотя я понимаю о чем она говорит(в конце концов я 5 лет работал над ММОРПГ), но объяснить ей что вещи которые ей кажутся однозначно верными могут не быть таковыми для других продуктов, довольно тяжело. И дало даже не в том, правильно или нет, а в том, что специфика приложений накладывает некоторые рамки...).

cleptoman 09.01.2011 22:45

сорри за оффтоп, но темы про MVC это всегда больше чем на 5 страниц, однако всегда интересно и поучительно..побольше бы таких, а не "как сделать кнопку в AS3?" )

Хомяк 09.01.2011 23:02

Цитата:

Сообщение от JackFromChaos (Сообщение 963180)
Потому как на лицо либо не понимание, либо мы странным образом перенос очередной порции логики не только в контрол, но и о вью...

Вот. Вот это место хорошее. Надо грамотно проводить "водораздел" между логикой вьюера и логикой приложения. Мне понравилось у PsychoTiger- a:

Цитата:

Вся графика, все звуки и всё остальное - это забота вьюшки, в этом и прелесть: сегодня у меня на экране человек, а завтра киборг. При этом я переписываю только отображение, не трогая контроллер и модель, тем самым не "ломая" логику. Размер прямоугольников - не нужен в контексте этой задачи - нам плевать на форму, хоть квадратная, хоть скругленная. Нам так же плевать на позиции - хоть синусоидально, хоть по прямой. На логику это не влияет. Нам просто нужно выводить на экран какие-то цветные элементы и помечать их. Отсюда всплывает очередная прелесть - мы можем не сильно заботится о том, что творится на экране, оставив это на "потом". Будь другой контекст - например, если бы нужно было отгадать размер в пикселах этой фигуры - то эти данные попали бы в модель. Аналогично и с формой, и с расположением. Проще говоря, в модели хранятся значимые данные в данной задаче. А на фоне гусей или океана это происходит - программу не колышет.
http://www.flasher.ru/forum/blog.php?b=256

andrew911 09.01.2011 23:20

Цитата:

Сообщение от Хомяк (Сообщение 963188)
Вот. Вот это место хорошее. Надо грамотно проводить "водораздел" между логикой вьюера и логикой приложения. Мне понравилось у PsychoTiger- a:

http://www.flasher.ru/forum/blog.php?b=256

Честно говоря не увидел тут противоречия с тем, что говорил Wolsh:

Цитата:

Так же как шахматист таскает фигуру над полем - кому это интересно, пока он ее не поставил = сделал Ход. Каким боком это касается Модели, объясните мне. Клеточки подсвечиваются, за фигуркой летит шлейф снежинок, вражеские фигуры в ужасе закрываются щитом - все это дела Вьюхи, и только ее, пока не будет совершено Действие, требующее изменение Состояния Модели.

Хомяк 09.01.2011 23:24

Цитата:

Сообщение от andrew911 (Сообщение 963190)
Честно говоря не увидел тут противоречия с тем, что говорил Wolsh:

А почему это должно быть противоречием? Ведь он совершенно прав.

andrew911 09.01.2011 23:34

Цитата:

Сообщение от Хомяк (Сообщение 963191)
А почему это должно быть противоречием? Ведь он совершенно прав.

Тогда не пойму о чем спор идет. Объявили всех фанатиками МВЦ, а потом сказали, что фанатики глаголят истину ;)

К слову, я не фанат МВЦ, просто пытаюсь представить как все логично должно работать.

dimarik 09.01.2011 23:38

Флуд пошел. Пора закрывать.

Хомяк 09.01.2011 23:58

Цитата:

Сообщение от andrew911 (Сообщение 963193)
Тогда не пойму о чем спор идет. Объявили всех фанатиками МВЦ, а потом сказали, что фанатики глаголят истину ;)

К слову, я не фанат МВЦ, просто пытаюсь представить как все логично должно работать.

Я никого здесь фанатиком не называл, зачем передёргивать? В основе MVC - лежит очень интересная, правильная концепция и, если хотите, я её фанатик. И если человек прав я, что - из принципа должен ему противоречить?

Если хотите разобраться, то прочитайте тему внимательно...а лучше читайте первоисточники Gof, Фоулер и иже с ними.

dimarik 10.01.2011 00:15

Закрыто.


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

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