|
|
|||||
Регистрация: Jun 2009
Сообщений: 461
|
Внесите, пожалуйста, ясность в MCV.
По MCV: Есть контроллер (С1), есть у него модель (M1). В С1 я создаю другой объект который тоже состоит из контроллера (С2) и модели (М2), и таких объектов может быть много в С1. Мне нужно в М1 делать расчеты которые связанны со всеми объектами принадлежащие С1, а значит нужны нужны ссылки на них и при чем не конкретно на них, а на модели этих объектов (М2-Мn).
1) Правильно ли хранить ссылки на модели дочерних объектов С1 в М1? 2) Если нет то как мне обращаться к моделям дочерних объектов из M1, ведь мне нужно использовать их для расчетов. |
|
|||||
Регистрация: Aug 2008
Адрес: Рязань
Сообщений: 723
|
1) правильно, ветвление модели (у тигера почитай)
пояни вот эту фразу: "В С1 я создаю другой объект который тоже состоит из контроллера (С2) и модели (М2)"
__________________
low + |
|
|||||
Цитата:
__________________
...вселенская грусть |
|
|||||
Регистрация: Jun 2009
Сообщений: 461
|
Цитата:
Вот лично мне кажется что это чесать левое ухо правой ногой. По этому ищу решения попроще. Если посоветуйте, будет вообще замечательно. Добавлено через 15 минут Вот это интересный вариант, только Громадный. Спасибо. |
|
|||||
Ну я конечно хз что там автор планирует, но можно примерно так всё решить:
1. C1 содержит в себе М1. 2. М1 состоит из нескольких маленьких моделей SM1-SMn(SmallModel) (ну массив дочерних моделей или как-то так) 3. С1 имеет ссылки на все Дочерние контроллеры. Так же С1 подписывается на их Ивенты. 4. если надо что-то поменять по инициативе Дочернего контроллера он просто диспатчит событие (на которое подписан С1) "Контроллер поменяй модель" 5. ... 6. PROFIT //****** З.Ы. Я бы тут диспатчил не Event а DataEvent - так как ДатаИвент может в своем теле содержать еще и строку кроме самого типа. Таким образом грамотно продумав систему сообщений можно обойтись без создания своего класса ивента. Добавлено через 1 минуту Публичный геттер на модель я хз. Чтоб геттером воспользоваться надо ссылку иметь, а чтоб дочерние контроллеры на родтеля ссылку имели - это уже не ок. Так что в попу публичный геттер на модель.
__________________
Кто к нам с чем для чего - тот у нас того от того. |
|
|||||
Регистрация: Jun 2009
Сообщений: 461
|
Dukobpa3, хм... интересный вариант, но мне непонятно кто создает SmallModels.
Например С1 создал подобъект c2 и по идеи м2 должен создавать с2, но у него нету ссылки на М1. И как правильно создавать м2 в М1? |
|
|||||
Цитата:
Цитата:
Добавлено через 2 минуты Главный контроллер видит такое событие с такой просьбой, обновляет главную модель, создает в ней меаленькую модель и пихает ссылку на эту маленькую модель в маленький контроллер. Это как один из вариантов. Можно же не давать ссылку на маленькую модель в маленький контроллер, а менять всю модель большим контроллером исключительно по событиям_просьбам от маленьких контроллеров. Как еще один вариант - главный контроллер изначально создает модель с ее дочерними моделями. Потом создает пачку контроллеров, потом в эти контроллеры передает ссылки для маленьких моделей. Добавлено через 3 минуты Всё зависит от требований всего приложения или текущего модуля. В любом случае передавать ссылку народителя в дите - плохой вариант. Добавлено через 5 минут В большинстве случаев при такой структуре можно обойтись без маленьких контроллеров. А оперировать исключительно одним большим контроллером в котором будет большая модель и большая вью. Большая модель будет в себе содержать кучу маленьких моделек, а большая вью будет в себе содержать кучу маленьких вьюшек которые будут связаны с маленькими модельками. А рулить всем будет один большой контроллер.
__________________
Кто к нам с чем для чего - тот у нас того от того. |
Часовой пояс GMT +4, время: 22:15. |
|
« Предыдущая тема | Следующая тема » |
|
|