[MVVM] 初步認識 MVVM 設計模式

image_thumb

View:其實就是XAML檔,也就是使用者介面,使用者介面設計人員只需要在Blend中進行對它的編輯,並透過Binding來和ViewModel溝通(將DataContext指定為某個ViewModel,以更進一步的與其中的屬性進行Binding)。

ViewModel:顧名思義,ViewModel就是供View使用的Model,透過公開的屬性(public property)給View進行Binding,供其使用。

Model:用來描述資料實體(Entity)的簡單類別(Class),也可以在這邊實作商業邏輯以及與資料庫溝通等資料存取相關的功能。

*注意:上圖中的箭頭是有意義的,上層的物件可以向下存取,但是下層的物件並不會知道上層的東西長什麼樣子,透過此原則,才得以做到乾淨的分層與鬆散藕合。

而這個設計模式能幫我們帶來什麼好處呢?

對程式設計人員(Developer)來說:

1. 程式的階層切分更為乾淨、簡潔

2. 相對減少透過程式進行與使用者介面的互動

3. 可以根據設計期/執行期決定不同的資料來源

4. 程式的撰寫可以完全的與使用者介面上的控制項脫鉤,不需再撰寫使用者控制項的Event Handler

5. 可以完全將設計的重心著重在資料流和商業邏輯,而不需要花費心思在使用者介面和流程

 

對使用者介面設計人員(Designer)來說:

1. 只需要將心思著重在使用者介面操作的流程使用者介面的呈現方式

2. 可以藉由程式設計人員提供的設計時期資料製作更接近現實的使用者介面

3. 更輕鬆的透過Binding、Behavior和Action就可以實作出整個使用者介面

4. 與控制項的互動一樣只需要透過Binding進行設定,不需要費心在Event Handler上

5. 更輕鬆的透過Blend就進行完所有使用者介面的設計,並輕鬆和程式進行結合

 

轉貼至 : http://www.dotblogs.com.tw/ouch1978/archive/2011/04/23/introducing-mvvm.aspx

留言

這個網誌中的熱門文章

WPF - 深入 Style

C# – M$ Chart Control 自定 ToolTip 的顯示

Vue.js - 基礎介紹教學