Программная архитектура с модулями PRISM и MVVM - PullRequest
3 голосов
/ 31 октября 2011

Я не уверен, как структурировать большую программу, используя PRISM Модули.

Я создал следующие слои:

Repository BusinessLayer -> IUnityContainer услуги регистрации UILayer -> MVVM реализован

Если у меня есть 3 модуля, и у меня есть действие в одном из них, как мне запустить представление другого модуля для загрузки?

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

В идеале, я думаю, я хотел бы сделать что-то вроде следующего:

IOrderService service = UnityContainer.Resolve (); service.PlaceOrder ();

Служба заказа отвечает за загрузку соответствующих функций пользовательского интерфейса и регистрацию в RegionManager.

Это правильно или я все понял неправильно?

Спасибо

1 Ответ

1 голос
/ 31 октября 2011

Мне действительно нравятся оба ваших подхода, но какой из них использовать, действительно зависит от ваших требований.Если вы хотите, чтобы один модуль явно сказал другому модулю, что делать, то сервисный локатор - это путь.Однако этот подход имеет тенденцию к некоторому уровню жесткой связи между вашими модулями.

Если более жесткая связь не то, что вам нужно (например, что происходит, когда вы добавляете четвертый модуль, который должен обрабатывать действие?), тогда агрегатор событий может дать вам более слабую связь.Этот подход требует немного более тщательной и предварительной работы для управления регионами и т. Д., Так как легко получить несколько неуправляемый набор событий, которые приводят к трудностям отладки (у меня сейчас такая проблема в проекте).

Вид туманного ответа, но я надеюсь, что это поможет: -)

Nate

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...