![]() |
|
||||||||||
|
|
|
|||||
|
Регистрация: Jun 2009
Сообщений: 461
|
По 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 минут В большинстве случаев при такой структуре можно обойтись без маленьких контроллеров. А оперировать исключительно одним большим контроллером в котором будет большая модель и большая вью. Большая модель будет в себе содержать кучу маленьких моделек, а большая вью будет в себе содержать кучу маленьких вьюшек которые будут связаны с маленькими модельками. А рулить всем будет один большой контроллер.
__________________
Кто к нам с чем для чего - тот у нас того от того. |
|
|||||
|
Регистрация: Jun 2009
Сообщений: 461
|
Вы описали те варианты которые я себе представлял, а один из них реализован, так что значит я все правильно понимаю, но все эти варианты не совсем соответствуют mvc. И дочерние модели должен создавать дочерний контроллер, потому что объектов может быть множество и какой конкретно объект не известно.
А по тем представлениям которые вы описали должен глав контроллер должен знать конкретно какие в итоге будут под модели. А второй вариант это передавать ссылку, ну это тоже не очень соответствует mvc. Все равно спасибо за описание, из ваших постов я понял либо оставлять как есть, либо переделать еще раз через левое ухо. |
![]() |
![]() |
Часовой пояс GMT +4, время: 17:05. |
|
|
« Предыдущая тема | Следующая тема » |
|
|