Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0 > Статьи

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 11.06.2011, 00:02
i.o. вне форума Посмотреть профиль Отправить личное сообщение для i.o. Найти все сообщения от i.o.
  № 1  
Ответить с цитированием
i.o.
 
Аватар для i.o.

Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
Не вижу смысла нагружать контроллер всякой чушью:
Код AS3:
public class Controll extends EventDispatcher
{
...
 
     private var _model:Model = new Model();
 
     ...
     public function get param():Object { return _model.param; }
     public function set param(obj:Object):void
     {
          if  ( _model.param === obj ) return;
           _model.param = obj;
 
     }
...
}
Разве не будет правильно, работать с данными модели через ссылку на нее саму?
Код AS3:
public class Controll extends EventDispatcher
{
...
    /// 
    private var _model:IModel = new Model();
 
    /// Model getter
    public function get model():IModel { return _model; }
...
}
ну и далее уже как:
Код AS3:
var myControl:Controll = new Controll();
myControl.model.someParam = "lalala";
trace(myControl.model.someParam);


Последний раз редактировалось i.o.; 11.06.2011 в 00:13.
Старый 11.06.2011, 00:16
Crazy вне форума Посмотреть профиль Отправить личное сообщение для Crazy Посетить домашнюю страницу Crazy Найти все сообщения от Crazy
  № 2  
Ответить с цитированием
Crazy
 
Аватар для Crazy

Регистрация: Dec 2001
Сообщений: 4,159
Цитата:
Сообщение от i.o. Посмотреть сообщение
Код AS3:
myControl.model.someParam = "lalala";

Не забываем про Law of Demeter
__________________
GIT d++ s++:++ a C++$ UB++ P++ L+ E+ W+++ N++ w++ O+ M V- t-- 5-- X+ R+++ tv- b+++ D++

Старый 11.06.2011, 00:55
Dukobpa3 вне форума Посмотреть профиль Отправить личное сообщение для Dukobpa3 Найти все сообщения от Dukobpa3
  № 3  
Ответить с цитированием
Dukobpa3
 
Аватар для Dukobpa3

блогер
Регистрация: Oct 2010
Адрес: Киев
Сообщений: 1,678
Записей в блоге: 12
Отправить сообщение для Dukobpa3 с помощью Skype™
Цитата:
Код AS3:
var myControl:Controll = new Controll();
myControl.model.someParam = "lalala";
trace(myControl.model.someParam);
Я не знаю, но мне такая структура претит. Кто бы ни был владелец этого майКонтрола, но какое он право имеет лезть в его модель? Для этого есть тот самый контрол который знает как с его моделью общаться. Я против управления внуками и правнуками вот такими методами.

Другой вопрос что тот кто имеет ссылку на майконтрол может дернуть какой-то из его методов типа: myControl.setParam();

Но не напрямую в модель. Как вариант этот setParam - может быть публичным сеттером на одно кокретное свойство модели, но не на всю модель. Аргументация - в сеттере можно прописать какие-то проверки, а если получили ссылку на модель, то пихаем данные в обход всего и даже без ведома непосредственного руководителя. Я за четкую субординацию.
__________________
Кто к нам с чем для чего - тот у нас того от того.

Старый 12.06.2011, 23:05
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 4  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Dukobpa3, Control не хранит данные и не должен их выдавать композицией на модель.

Старый 12.06.2011, 23:21
Dukobpa3 вне форума Посмотреть профиль Отправить личное сообщение для Dukobpa3 Найти все сообщения от Dukobpa3
  № 5  
Ответить с цитированием
Dukobpa3
 
Аватар для Dukobpa3

блогер
Регистрация: Oct 2010
Адрес: Киев
Сообщений: 1,678
Записей в блоге: 12
Отправить сообщение для Dukobpa3 с помощью Skype™
Цитата:
Dukobpa3, Control не хранит данные и не должен их выдавать композицией на модель.
Так я собственно про то же самое и говорю. Просто раз уж так охота рулить моделью чужой то лучше так.

Склонен думать о неправильной архитектуре если есть такая нужда.
__________________
Кто к нам с чем для чего - тот у нас того от того.

Старый 13.06.2011, 09:51
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 6  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Вы сами себе противоречите
Не должно быть какой-то внутренней модели, доступ к ней публичный.

Старый 13.06.2011, 10:02
fish_r вне форума Посмотреть профиль Отправить личное сообщение для fish_r Посетить домашнюю страницу fish_r Найти все сообщения от fish_r
  № 7  
Ответить с цитированием
fish_r
 
Аватар для fish_r

блогер
Регистрация: Jan 2011
Сообщений: 1,162
Записей в блоге: 4
Цитата:
Сообщение от etc Посмотреть сообщение
Вы сами себе противоречите
Не должно быть какой-то внутренней модели, доступ к ней публичный.
ого! а, тогда, какой смысл в контролле вообще?

Старый 13.06.2011, 10:43
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 8  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Цитата:
Сообщение от fish_r Посмотреть сообщение
ого! а, тогда, какой смысл в контролле вообще?
Ну он может быть базовым по отношению к дочернему, которому нужны данные из модели.

Старый 13.06.2011, 12:51
Crazy вне форума Посмотреть профиль Отправить личное сообщение для Crazy Посетить домашнюю страницу Crazy Найти все сообщения от Crazy
  № 9  
Ответить с цитированием
Crazy
 
Аватар для Crazy

Регистрация: Dec 2001
Сообщений: 4,159
Цитата:
Не должно быть какой-то внутренней модели, доступ к ней публичный.
Публичный для кого и для каких целей?
__________________
GIT d++ s++:++ a C++$ UB++ P++ L+ E+ W+++ N++ w++ O+ M V- t-- 5-- X+ R+++ tv- b+++ D++

Старый 13.06.2011, 13:01
Dukobpa3 вне форума Посмотреть профиль Отправить личное сообщение для Dukobpa3 Найти все сообщения от Dukobpa3
  № 10  
Ответить с цитированием
Dukobpa3
 
Аватар для Dukobpa3

блогер
Регистрация: Oct 2010
Адрес: Киев
Сообщений: 1,678
Записей в блоге: 12
Отправить сообщение для Dukobpa3 с помощью Skype™
Та я вот что-то тоже ниче не понял... Прошу прояснить. Я как-то старался обособить каждый контрол с его моделью и вью от остальных.

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

В таком случае я не лазил в модели через дочернние контролы, а просто менял строки из главного контрола, так как главная модель это модель главного контрола.

Правда пример плохой, в данной ситуации у меня скорее всего был бы только один контрол на всё это дерево моделей и вьюх. Что-то умнее щас не придумалось
__________________
Кто к нам с чем для чего - тот у нас того от того.

Создать новую тему Ответ Часовой пояс GMT +4, время: 10:28.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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