2011-10-31 80 views
3

我不確定如何使用PRISM模塊構建大型程序。PRISM模塊和MVVM的程序架構

我已經創建了以下層:

庫 BusinessLayer - > IUnityContainer註冊服務 UILayer - > MVVM實現

如果我有3個模塊,以及我在它們中的一個,如何動作我是否觸發另一個模塊的視圖加載?

我目前正在使用EventAggregator,但這需要viewmodel以某種方式加載,因此它可以用於事件。

理想的情況下,我想,我想這樣做如下:

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

然後訂單服務負責加載相關的UI功能並將其註冊到RegionManager。

這是正確的還是我得到了這完全錯誤?

感謝

回答

1

其實我都喜歡你的方法,但使用哪一個取決於你的需求。如果你想明確地讓一個模塊告訴另一個模塊要做什麼,那麼服務定位器就是要走的路。但是,這種方法傾向於在整個模塊中引入一定程度的緊密耦合。

如果更緊密的耦合不是你想要的(例如,當你添加需要處理動作的第四個模塊會發生什麼?),那麼事件聚合器可以讓你鬆散耦合。這種方法確實需要一些更加嚴格和前沿的工作來管理區域等,因爲很容易導致一些難以管理的事件導致調試困難(我現在在項目中遇到了這個問題)。

一個模糊的答案的種類,但我希望它能幫助:-)

內特

+1

你認爲混合想法是什麼?使用核心模塊的直接服務,使用可選模塊的eventAggregator?可能不是一個好主意,混合設計的第二個想法。 – TheAfrican