MVVM架構模式
阿新 • • 發佈:2019-02-01
MVVM是Model-View-ViewModel的簡寫。微軟的WPF帶來了新的技術體驗,如Silverlight、音訊、視訊、3D、動畫……,這導致了軟體UI層更加細節化、可定製化。同時,在技術層面,WPF也帶來了 諸如Binding、Dependency Property、Routed Events、Command、DataTemplate、ControlTemplate等新特性。MVVM(Model-View-ViewModel)框架的由來便是MVP(Model-View-Presenter)模式與WPF結合的應用方式時發展演變過來的一種新型架構框架。它立足於原有MVP框架並且把WPF的新特性糅合進去,以應對客戶日益複雜的需求變化
設計模式
編輯 因為WPF技術出現,從而使MVP設計模式有所改進,MVVM 模式便是使用的是資料繫結基礎架構。它們可以輕鬆構建UI的必要元素。 可以參考The Composite Application Guidance for WPF(prism) View繫結到ViewModel,然後執行一些命令在向它請求一個動作。而反過來,ViewModel跟Model通訊,告訴它更新來響應UI。這樣便使得為應用構建UI非常的容易。往一個應用程式上貼一個介面越容易,外觀設計師就越容易使用Blend來建立一個漂亮的介面。同時,當UI和功能越來越鬆耦合的時候,功能的可測試性就越來越強。 在MVP模式中,為了讓UI層能夠從邏輯層上分離下來,設計師們在UI層與邏輯層之間加了一層interface。無論是UI開發人員還是資料開發人員,都要尊重這個契約、按照它進行設計和開發。這樣,理想狀態下無論是Web UI還是Window UI就都可以使用同一套資料邏輯了。借鑑MVP的IView層,養成習慣。View Model聽起來比Presenter要貼切得多;會把一些跟事件、命令相關的東西放在MVC的'C',或者是MVVM的'Vm'。MVVM優點
編輯 MVVM模式和MVC模式一樣,主要目的是分離檢視(View)和模型(Model),有幾大優點 1. 低耦合。檢視(View)可以獨立於Model變化和修改,一個ViewModel可以繫結到不同的"View"上,當View變化的時候Model可以不變,當Model變化的時候View也可以不變。 2. 可重用性。你可以把一些檢視邏輯放在一個ViewModel裡面,讓很多view重用這段檢視邏輯。 3. 獨立開發。開發人員可以專注於業務邏輯和資料的開發(ViewModel),設計人員可以專注於頁面設計,使用Expression Blend可以很容易設計介面並生成xaml程式碼。 4. 可測試。介面素來是比較難於測試的,而現在測試可以針對ViewModel來寫。demo 如下: