![]() |
|
||||||||||
|
|||||
|
[+1 25.10.13]
[+4 18.03.14] |
Цитата:
Приказывает Контроллеру выполнить команду по условию. Котейка Вы меня утомили немного. Я на ваши посты более не реагирую. |
|
|||||
|
Регистрация: Aug 2013
Сообщений: 56
|
Вы меня если честно тоже) Обижайтесь не обижайтесь, но архитектуру MVC вы не понимаете, как и то зачем она вообще нужна. Быть может в теме еще отпишется кто-то к чьему мнению вы прислушаетесь больше. Мне вас переубедить не удалось, что впрочем неудивительно я ж тут новичок)
|
|
|||||
|
Цитата:
Модель не имеет прямых (вне массива слушателей) ссылок ни на вью, ни на контроллер, и уж тем более не говорит что делать контроллеру. Контроллер это тонкая прослойка между представлением и моделью, логика в контроллере, как уже успели отметить, это не очень удачный опыт реализации: Цитата:
Контроллер пользует только вид, и в 90% случаев этому предшествует какое то действие пользователя. Соглашусь с Котейкой, MVC архитектуру вы немного недопоняли. |
|
|||||
|
[+1 25.10.13]
[+4 18.03.14] |
KumoKairo модель как и вид разговаривают с контроллером посредством диспатча кастомных эвентов.
|
|
|||||
|
Покажите мне готовый толковый пример из интернетов, где модель разговаривает с контроллером, передавая ему логику работы приложения
![]() У меня есть несколько ссылок (в том числе и на Design Patterns in AS 3.0), где мое и Котейкино представление шаблона MVC подтверждается =============== Цитата:
|
|
|||||
|
Banned
[+4 24.02.14]
[+4 07.11.13] [+ 13.03.14] Регистрация: Mar 2013
Сообщений: 1,864
|
Сразу хочу сказать, что свои слова произношу с улыбкой. Вы сами читаете что пишите?)
Цитата:
Цитата:
Цитата:
Следом вы приводите картинку с тем кто кому отдает приказания. И тут как гром среди ясного неба - я не понимаю Вас))) |
|
|||||
|
Цитата:
Цитата:
В случае с "говорит что делать" у нас есть прямые ссылки на объекты, которые (ссылки) мы в лоб хардкодим: function setController(someController:IControler):void { var myLittleController:IControler = someControler; myLittleController.someMethod(someParam); } public class SomeSignalDispatchingClass { public var myLittleSignal:Signal; public SomeSignalDispatchingClass() { myLittleSignal = new Signal(); } public function somethingHappened():void { myLittleSignal.dispatch(); } } //Другой класс-слушатель событий объекта класса SomeSignalDispatchingClass public class SomeSignalListener { public SomeSignalListener(signalDispatcher:SomeSignalDispatchingClass) { signalDispatcher.add(someSignalListener); } private function someSignalListener():void { trace("Signal was dispatched"); } } Надеюсь так мы лучше поймем друг друга ![]() |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Это обескураживающее всех недоразумение с двумя разными идеями MVC на самом деле очень простое.
Большинство флэш-девелоперов приходят во флэш из веб-разработки. Это вполне естественно, ибо флэш, как ни крути, дитя и слуга Веб. С какого перепугу они вдруг начнут менять свое представление о программировании? Лет десять человек учился на форумах РНР-шников, с молоком матери впитал что Модель это тупая безмолвная БазаДанных на MySQL, Вью это хтмл-страница (+ немного джаваскрипта для пущей интерактивности) в браузере клиента, а Контроллер — конечно же, великолепный РНР-код обсуждаемого разработчика, в котором, естественно (а где же еще?), и сосредоточена вся логика веб-приложения. Это не ересь, не тупость. Это технически обоснованная вариация на тему MVC, известная так же как MVP. Сама технология продиктовала такой тип абстрагирования. А со временем воспитались миллионы РНР-программистов, свято верящих в то, что это и есть кошернейший классический MVC. А некоторые из них, попав во флэш-разработку, из чувства вселенской любви и сострадания одарили нас разными фреймворками (РНР-шники очень любят писать фреймворки). Но мы то программируем на AS3. У нас нет физически валяющегося где-то на сервере мешка с данными, умеющего только хранить и отдавать эти данные. У нас нет даже деления на разные языки программирования для каждой части MVC. Мы конечно можем, если захотим, использовать такую концепцию (или взять известный фреймворк, и нас уже никто не спросит) с пассивной Моделью и Толстыми контроллерами. Но зачем? Там это — техническое ограничение. У нас его нет. У нас прекрасно реализуется стандартная классическая парадигма MVC с активной моделью и "пустыми" контроллерами. Именно такая система рассматривается в упомянутой книге "ActionScript 3.0 Шаблоны проектирования" — первой в мире книге по AS3. Потому что совершенно непонятно, зачем слепо тащить в AS3 все это РНР-наследие (со всем уважением к огромному опыту и наработкам, конечно). Просто отсеивайте, что откуда. Не путайте MVC и MVP.
__________________
Reality.getBounds(this); |
|
|||||
|
Регистрация: Aug 2013
Сообщений: 56
|
Akopalipsis, суть не в том диспатчит модель или нет и кому
Суть в том что она командует.Цитата:
Представьте себе что модель одна. Нет ни контроллера ни вида. Она создает мир, деревья в нем, животных, людей. Последние живут своей жизнью. Но графического представления этому нет, только логика. Все что делает модель это диспатчит изменения внутри себя, вникуда просто диспатчит. >Вырасло такое-то дерево. >Родился такой-то человек. >Тот пошел туда-то. Модель у нас есть. Внезапно трах тибидох появляется вид, начинает ловить события модели и их отображать. По своему как умеет. Люди кружочки. Деревья палочки. Если в модели кто-то родился. то появляется новый кружок и т.п. Вот есть у нас и вид. Потом приходит юзер. И он хочет как-то влиять на эти самые кружочки и палочки, ему нужно это щупать и изменять прямо в виде, неудобно же в модели, да и х.з. как. И чтобы все это связать, чтобы и вид и модель работали по отдельности, но могли оповещать друг друга появляется контроллер. Он слушает модель и передает в вид что там поменялось, а вид по свойски отображает. А так же он слушает чего там хочет наш юзер, что он щупает. И дергает модель за ниточки чтобы та обрабатывала запросы юзера. Это и будет MVC. То есть если вид заменить другим более навороченным, то от этого ничего не поменяется в модели. И наоборот, если вид станет хуже, то опять же модели по барабану. Будет он там людей показывать видом сверху или с головой марсиан=) |
![]() |
![]() |
Часовой пояс GMT +4, время: 03:23. |
|
|
« Предыдущая тема | Следующая тема » |
|
|