2011-01-06 29 views
6

在wpf應用程序中,viewmodel的責任是什麼?他可以管理所有事情,還是隻代表視圖並將消息/事件發送到業務層並從中獲取信息?視圖模型應該包含邏輯嗎?

+1

是的 - http://stackoverflow.com/questions/1405739/mvvm-tutorial-from-start-to-finish – Josh 2011-01-06 05:28:14

回答

8

簡短的回答,是的。

較長的答案...

模型 - 視圖 - 視圖模型(MVVM)模式的主要目標是:你的觀點的邏輯

  1. 許可單元測試。這些是應用於ViewModel層的單元測試,在沒有與之關聯的View的情況下執行該層。
  2. 通過最大限度地減少與您的XAML文件關聯的代碼隱藏量來促進開發人員設計工作流程。

MVVM模式還提供了視圖邏輯和業務邏輯之間的關注點分離,就像MVC及其UI模式一樣。但是,以上兩點是真正定義MVVM模式的。

現在,考慮您在哪裏找到您的業務邏輯。如果你把它放在你的ViewModel中,上面#1 &#2仍然有效嗎?是。如果將它放在單獨的圖層中,#1和#2仍然有效嗎?是。

因此,在這兩種情況下,您仍然實現MVVM的兩個主要目標。你採用哪條路線確實取決於你的應用程序的複雜程度以及處理它的開發者的數量。隨着這兩個因素的增加,您將受益於3層......或更多!

相關問題