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

in4core 02.06.2014 22:58

Цитата:

Тогда у меня для Вас "пренеприятнейшая новость" - Вы несколько лет делали не пойми что!
Не не пойми что, а MVP
Загугли и посмотри что такое презентер

LifeIsRhythm 02.06.2014 23:06

Цитата:

Не не пойми что, а MVP
Да, тогда остается только пожелать интересного чтения о "НАСТОЯЩЕМ MVC".
Ну и как граммар-наци-дезинформатор, Вы знаете что нужно делать :)
Цитата:

MVP — шаблон проектирования пользовательского интерфейса, который был разработан для облегчения автоматического модульного тестирования и улучшения разделения ответственности в презентационной логике (отделения логики от отображения):
Модель (англ. Model) представляет собой интерфейс, определяющий данные для отображения или участвующие в пользовательском интерфейсе иным образом.
Представление (англ. View) - это интерфейс, который отображает данные (Модель) и маршрутизирует пользовательские команды (или события) Presenter-у, чтобы тот действовал над этими данными.
Presenter действует над Моделью и Представлением. Он извлекает данные из хранилища (Модели) и форматирует их для отображения в Представлении.

Обычно, реализация Представления создаёт экземпляр конкретного объекта Presenter-а и предоставляет ссылку на себя. (Формально параметром конструктора Presenter’a является интерфейс Представления, в то время как в конструктор передается конкретная реализация Представления). Когда вызывается событие Представления, оно вызывает конкретный метод Presenter’а, не имеющего параметров и возвращаемого значения. Далее Presenter через интерфейс получает данные из Представления, после чего вызывает методы Модели и устанавливает через интерфейс данные из Модели в Представление.

in4core 02.06.2014 23:16

LifeIsRhythm - не пугайтесь, вы еще научитесь и поймете, что в мире много всего интересного :)

LifeIsRhythm 02.06.2014 23:32

in4core, я надеюсь, Вы не приняли мои слова, после цитирования Ваших слов, на свой счет! Это я не Вам!)

caseyryan 03.06.2014 09:11

Цитата:

Не не пойми что, а MVP
Мы можем сколько угодно спорить, и рассуждать кто тут дезинформатор, и какой вариант правильный.
Даже если посмотрим вот на эту диаграмму
http://upload.wikimedia.org/wikipedi...VC-Process.png
Тут можно тоже сказать, что юзер взаимодействует не с контроллером, а с вью, ибо не может он напрямую внедряться в программный код. Пользователь видит вью, что-то там нажимает, вью реагирует на ввод и шлет команду контроллеру. А здесь он каким-то образом увидел во вью, и сразу передал контроллеру, нестыковку не видите? ) (да, даже википедию пишут простые люди, и там тоже часто есть ошибки)
Или у нас разное понимание одних и тех же слов.
Цитата:

Тогда у меня для Вас "пренеприятнейшая новость" - Вы несколько лет делали не пойми что!
Смотрите сами не поделайте несколько лет не пойми что)
Все эти понятия MVC / MVP могут на столько засорить мозги, что потом любой код будет казаться не правильным.
И вообще, вряд ли найдутся те, кто сможет объяснить четкую разницу между ними, потому что ее нет, все построено лишь на общих понятиях, а когда дело доходит до реальных приложений, сложно четко выделить где MVC, где MVP.
У меня всегда контроллер разруливает взаимосвязь между моделями и вьюшками, и ни разу не возникало никаких проблем с маштабированием. Все просто и понятно. Контроллер слушает события вьюшек и моделей

Aquahawk 03.06.2014 09:21

Код AS3:

увидел во вью, и сразу передал контроллеру

Вы просто о разных уровнях тут говорите. Вью мышки со вью кнопки совместил именно контроллер и пользователь осуществил ввод мышью, тачем или клавой, операционка(в качестве контроллера) подвигала указатель, рантайм флеша зная системные сообщения совместил всё это вьюхой и вам кажется что вью шлёт события, нет это фейк флеша. Да и вообще на любом уровне MVC или MVP можно найти своё разделение, потому что DisplayObject с одной стороны вьюха для as3 кода, а для движка рендеринга вполне себе модель, ибо содержит данные, где лежит, что лежит, как рисовать. Вся программа данные. Но по факту на разных уровнях абстракции одна и та же сщность может быть в разных ролях.

caseyryan 03.06.2014 09:45

Да, это все понятно. Но ведь речь может идти не только о флеше. Шаблон то общий для разных языков.
Мы с товарищем LifeIsRhythm можем тут хоть до посинения называть друг друга дезинформаторами и тролями, а что же в реальности:
Сейчас, побольше погуглив, чтобы освежить мозги, твердо пришел к выводу, что никто из нас ни прав, ни не прав. И тот и тот вариант правильный. Так как используются оба варианта, причем довольно крупными игроками IT рынка. Просто варинант, к которому привык я называется пассивным.
Вот например
http://yalantis.com/blog/lightweight...es-guided-mvc/
MVC рекомендованный Apple. Все-таки далеко не последняя компания на IT рынке.
А вот тут у чувака вообще вьюшка команды модели посылает, судя по диаграмме
http://techknowfreak.com/2011/10/08/#.U41O5nJ_sts
Вот вариант используемый в Ruby on rails
http://amix.dk/uploads/Rails_MVC_overview.png
http://ramonaworks.com/ruby-on-rails...chitecture.jpg

Так что, я признаю, что может вьюшка иметь ссылку на модель, был не прав на этот счет, но сам как использовал вариант без ссылки, так и буду использовать, так как для меня он прост и понятен.
И смысла в дальнейшем споре не вижу

Wolsh 03.06.2014 10:56

1. Сто раз уже просил не смешивать в одну кучу web-ориентированные схемы "MVC от РНР-разработчиков" с MVC для однофайлового приложения. В WEB у вас вся триада разнесена физически и каждый элемент написан на своем языке и общается с другими по различным протоколам. Это браузер-клиент, база данных и РНР-скрипт. Когда Вы пишете свою флэшку используя MVC, всего этого ужаса нет. Поэтому извращения не нужны, не надо их притягивать сюда. Это же относится и к схеме с пассивной моделью и толстым контроллером (тот же Ruby). Это все издержки технологии, приводящие к сложности реализации. Во флэше все просто. Сложнее только правильно абстрагировать ответственности членов триады, поскольку нет диктата четкого физического разделения.
2. "рекомендация эппл" вообщето статейка в блоге разработчика iOS, опять же мобильной OS. Интересные соображения, но не более. Содержащие критику традиционного понимания роли контроллера. То есть описание варианта НЕтрадиционного контроллера.
3. "А вот тут у чувака вообще вьюшка команды модели посылает, судя по диаграмме" — увы и ах, сплошная стрелка это "забирание данных" (строго говоря, это просто обозначение ссылки), а пунктирная — событие. Как и в связке вью-контроллер — вью посылает событие, контроллер забирает данные из вью / модель посылает событие, вью забирает данные из модели.

ZackMercury 03.06.2014 12:46

Wolsh, спасибо, я, кажется, прозрел чуточку. Можно ведь модель написать на Java, а вью и контроллер на AS3, и связать сокетами. Правильно? Такова архитектура стандартного MVC веб-приложения?

in4core 03.06.2014 13:10

SuriTheAngel - я тебе больше расскажу даже :) Сервер - это модель с контроллером, а флеш - это вью! Не правда ли круто ? :D
Прозрел он...шутка смешная ) это и так было понятно


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

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