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

dimarik 25.10.2010 03:09

Цитата:

Сообщение от Котяра (Сообщение 943019)
я пробовал запрещать видам доступ к модели, принимая только событийные данные, это не всегда удобно.
иногда по событию смены статуса, например, виду нужно прочитать другие данные модели, которые в событии не передаются.

Это общий дуализм GOF-паттерна Observer. По моему мнению, разработчику необходимо решить какое количество информации необходимо нести в конкретном событии. Можно ввести отдельное событие для каждого изменения модели. Можно ввести одно событие для любого изменения модели. Представление может запросить у модели (POP-операция) недостающие в событии данные. Событие может нести в представление избыточное количество информации (PUSH-система). Истина где-то рядом.

AlexDesinger 25.10.2010 11:12

Цитата:

Думаю статейку накатать на днях про MVC для нубов вот...
да, да, скорее бы )))

Народ, а есть ли смысл использовать mvc для простых проектов, например, для создания flv плеера? Если смысла нет, может можно применить просто C+V?

i.o. 25.10.2010 11:26

паттерны были придуманы для больших / сложных проектов. Если ваш плеер будет описан парой сотен строк кода, то использование mvc, на мой взгляд, неоправдано.

Psycho Tiger 26.10.2010 19:59

Цитата:

да, да, скорее бы )))
Я кстати, её уже пишу.

Цитата:

Народ, а есть ли смысл использовать mvc для простых проектов, например, для создания flv плеера? Если смысла нет, может можно применить просто C+V?
MVC всегда есть смысл использовать, ровно как всегда есть смысл его не использовать.

Mur4ik 27.10.2010 01:51

Цитата:

Сообщение от i.o. (Сообщение 945199)
паттерны были придуманы для больших / сложных проектов. Если ваш плеер будет описан парой сотен строк кода, то использование mvc, на мой взгляд, неоправдано.

Паттерны бывают разные, и не все они только для больших и сложных проектов (и уж тем более не для них придуманы ;) ).
Если flv плеер планируется усовершенствовать и наращивать функционал (обычно так и бывает), то лучше изначально об этом подумать.

i.o. 27.10.2010 02:29

Цитата:

Если flv плеер планируется усовершенствовать и наращивать функционал (обычно так и бывает), то лучше изначально об этом подумать.
Именно это я и хотел сказать. Спасибо )

Котяра 27.10.2010 13:07

Цитата:

Сообщение от dimarik (Сообщение 945159)
Это общий дуализм GOF-паттерна Observer. По моему мнению, разработчику необходимо решить какое количество информации необходимо нести в конкретном событии. Можно ввести отдельное событие для каждого изменения модели. Можно ввести одно событие для любого изменения модели. Представление может запросить у модели (POP-операция) недостающие в событии данные. Событие может нести в представление избыточное количество информации (PUSH-система). Истина где-то рядом.

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

Psycho Tiger 27.10.2010 16:24

Вот вы говорите про pop и push от вьюхи в модель. Речь идёт о стэке? Разве это нормально что вьюшка так или иначе меняет модель?

Котяра 27.10.2010 17:45

Цитата:

Сообщение от Psycho Tiger (Сообщение 945757)
Вот вы говорите про pop и push от вьюхи в модель. Речь идёт о стэке? Разве это нормально что вьюшка так или иначе меняет модель?

Не, это не о том..
Pop Pull - система оповещения - берём данные самостоятельно.
Push - посылаем вместе с событием.
вот тут на примере java

AlexDesinger 27.10.2010 18:14

Цитата:

Если flv плеер планируется усовершенствовать и наращивать функционал (обычно так и бывает), то лучше изначально об этом подумать.
угу, планируется, именно поэтому я и задумался о mvc


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

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