Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Композиция: обращение вверх по иерархии (http://www.flasher.ru/forum/showthread.php?t=204193)

spirit2 14.11.2013 23:10

Цитата:

Сообщение от Dukobpa3 (Сообщение 1152463)
Может вы еще и под каждый домик на карте изометрии свой ивент добавите?

Вторая попытка приплести 200 эвентов?! Так и сделаю, захаркодю их в XML ядре, спасибо за идею.

alexcon314 14.11.2013 23:38

Как-то часто стало витать в воздухе некое "xml-ядро"... хоть бы объяснил кто, что за зверь такой. Если, конечно, не секрет:).

Wolsh 15.11.2013 00:39

Цитата:

Проблема импорта модели в того кто на нее подписывается не стоит, так как ссылка то уже и так есть.
Нифига себе MVC. А IModel extends IEventDispatcher уже не проканывает? О__о

Dukobpa3 15.11.2013 01:09

Цитата:

Код AS3:

IModel extends IEventDispatcher


Проканывает, но зачем? Нам ведь список геттеров из модели все-равно видеть надо.
Так что ссылка на модель будет во вьюхе. А мы ведь из вьюхи на нее подписываемся?

Wolsh 15.11.2013 02:24

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

zCHESNOKz 15.11.2013 02:27

ребят, а как на счет событий, могут ли дети подписываться на созданные родителями события ? Да, могут, а правильно ли это? По моему, - нет.

Akopalipsis 15.11.2013 02:41

Цитата:

Да, могут, а правильно ли это? По моему, - нет.
Расскажите мне пожалуйста, как это они делают? Баблинг не в счёт, он же только у ДО обьектов.

zCHESNOKz 15.11.2013 02:44

Цитата:

Сообщение от Akopalipsis (Сообщение 1152499)
Расскажите мне пожалуйста, как это они делают? Баблинг не в счёт, он же только у ДО обьектов.

ну, в родителе диспатчим событие, далее в ребенке добавляем слушатель на это событие, а как по другому то ?

Dukobpa3 15.11.2013 02:45

Цитата:

Сообщение от Wolsh
чтобы не было жесткой связи между данными и отображением.

Заставил задуматься:)
Я вообще всегда смотрел с той точки зрения что модель + контроллер это сердце системы. Вью без них обоих не сможет функционировать, и модели подменять даже не пытался ни разу за всю практику. А вот вью при некоторых раскладах перестегивать как перчатки приходится. Потому "облегчение связи" всегда воспринимал как облегчение процесса либо смены вью, либо всей триады конкретного блока.

Но если мы говорим о смене моделей, то нужен еще один уровень абстракции, как медиатор для вью, но прокси для моделей. Прокси за своим интерфейсом инкапсулирует несколько моделей, и меняет их внутри себя. В итоге получается медиатор слушает прокси, но медиатор может менять вьюхи как перчатки, а прокси модели как перчатки. А вот сам медиатор и прокси неизменны и со своими конкретными АПИ.

Добавлено через 38 секунд
Цитата:

далее в ребенке добавляем слушатель на это событие
А откуда в ребенке ссылка на родителя?
Фейл у нас начинается с момента наличия ссылки на родителя.

Wolsh 15.11.2013 03:07

Цитата:

Да, могут, а правильно ли это? По моему, - нет.
Технически конечно можно любое извращение попытаться реализовать. Тут вопрос скорее даже не "правильно ли это" а "нужно ли это?", когда у родителей есть прямая ссылка на ребенка и значит доступ ко всем его пабликам.
Вы когда-нибудь видели, чтобы родитель звонил своему семилетнему сыну и объяснял "слушай, у меня тут завал на работе, шеф притащил еще один проект. Плюс в машине масло где-то течет, я блин весь уже на нервах.."?
Это обязанность детей звонить родителям и рассказывать о том, что с ними происходит. (DispatchEvent)
Родитель же дает четкие указания "ну ка, марш в кровать!" (child.method()).
А если ребенок не звонит, родитель его контролирует наблюдением (child.x, child.alpha).

Когда ребенок начинает гонять по экрану родителя, а тот плачется ребенку в трубку, на приложении можно ставить крест. Лучше стать хорошим художником, чем плохим программистом.


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

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