2011-08-26 79 views
4

我想盡快使用WPF和與MVVM模式嚴重關聯的Prism框架。我已經準備好了許多關於MVVM的不同描述,例子和討論,每一個都略有不同,給我留下了一些困惑。幫助理解MVVM模式?

我明白如下:

MVVM模式有3份到它: -

  • 模型 - 即保存應用程序的數據/信息的類。
  • 視圖 - 應用程序的視覺元素。
  • ViewModel - 與視覺元素相關的邏輯,狀態和其他行爲。它從模型中獲取數據並將其公開(可能包含一些數據轉換/格式化),以便View可以直接使用它。

我不知道什麼是:

  1. 做這些三個部分覆蓋應用程序的每一個部分?或者這些應用程序的部分內容可能不在這三個部分之中?
  2. 它是ViewModel還是負責填充模型的其他部分?

在此先感謝

回答

3
  1. 絕對不是。除非他們這樣做。如果你的應用程序很簡單,那麼一切都可以在View,ViewModel或Model中處理。如果你的應用程序是複雜的,並且最佳實踐要求你將邏輯分解成它們自己的類型(通信邏輯,存儲庫邏輯等),那麼你就沒有停止。 MVVM只關注View中的以視圖爲中心的邏輯,ViewModel中的應用程序邏輯以及在兩者之間傳輸信息的存儲方式。

  2. ViewModel僅負責解釋用戶操作並準備模型內的邏輯結果,以便View可以將此信息顯示給用戶。在某些情況下,模型本身擁有一些邏輯以便它可以響應用戶操作是有道理的。但是,我的經驗是,這種迷你ViewModel-Model設計是對沒有經驗的開發人員的設計決定的反應。一旦你得到了MVVM的真正訣竅,你通常不需要(或者想要)將模型中的任何代碼放在驗證邏輯之外。模型,視圖模型的

0
  1. 思考和查看分別處理業務,應用程序流和演示文稿作爲邏輯層。例如,ViewModel 可以將複雜的或可重用的UI交互委託給不對應於任何特定視圖但仍屬於ViewModel 的單獨服務。

  2. 是的,ViewModel位於UI和Model之間。