我正在開發一個使用MVVM模式的WPF應用程序。我使用的是MVVM Light庫,我也試圖使用依賴注入器(我正在考慮Ninject和Unity)。MVVM:Model和ViewModels之間的通信
我讀過很多博客文章,對於讓我的課程相互交流的「正確」方式我很困惑。特別是,我不知道何時使用依賴注入以及何時依賴中介模式。
讓我們考慮一個例子。我有一個ViewModel,我們稱之爲DataViewModel,以及提供某種數據的Data類。 它們之間如何更好地進行通信:
A.通過IData接口向DataViewModel注入依賴項?這樣Data就不必依賴Messenger,但如果數據發生變化,它必須提供一個事件,並且ViewModel必須訂閱它。
B.依賴介體模式(在MVVM Light中以Messenger實現)並在Model和ViewModel之間發送消息?這樣就根本不需要使用依賴注入,因爲整個通信將基於消息。此外,我的ViewModels是否已經注入了其他ViewModel的依賴關係,還是隻依靠Messenger?如果第一個,是否有必要爲每個ViewModel定義一個單獨的接口?我認爲爲每個虛擬機定義一個接口將是一項額外的工作,但也許值得。
現在我明白了......但我需要一些時間來習慣依賴注入和服務:)謝謝! – madbadger 2010-12-07 14:29:36