2012-03-25 5 views
1

Я пытаюсь найти способ создания сложных веб-страниц с MVC3 и AJAX.MVC модульные компоненты GUI

Я хотел бы использовать компоненты для достижения этой цели. Каждый компонент состоит из собственной модели, вида и контроллера.

Несколько компонентов затем размещаются на некотором сложном виде и должны действовать вместе с , обеспечивая желаемое поведение.

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

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

ответ

0

Я бы использовал Mediator Pattern, также иногда ошибочно именуемый шаблоном менеджера.

Этот класс будет опосредовать связь ваших компонентов.

+0

Например, у меня есть два компонента и конкретный посредник: ComponentA (ModelA, ViewA, ControllerA). ComponentB (ModelB, ViewB, ControllerB). MediatorX (Знает ComponentA и ComponentB и как они должны взаимодействовать). Компонент A и ComponentB параметризированы (модель) и знают, что они работают с MediatorX. Теперь, когда пользователь выполняет некоторую активность, действие в ControllerA выполняется. – Dusan

+0

В этом действии ControllerA я создаю MediatorX и вызываю некоторый метод , передавая все соответствующие данные - например, отправитель «ComponentA», действие было «UserDoneSomething», а дополнительные данные - «123». MediatorX затем выполняет некоторые действия в ControllerB и возвращает результат, который затем отправляется обратно клиенту. Является ли это хорошим подходом (или слишком сложным), или мне что-то не хватает? – Dusan

+0

Похоже на довольно хорошее резюме для меня. –

Смежные вопросы