設計模式之—— MVVM

MVVM是通過MVC演變過來的, 數據流向如下圖:

  

單從數據流向來看,跟MVP有點類似,MVP面向接口,但是MVVM是 響應式編程。

  •    ViewModel並不是完全是一個處理業務邏輯模塊,它是對View和Model做了一個雙向綁定 。
  •    View中展示所用到的數據都來源於ViewModel所提供的值。而View會監聽ViewModel的屬性。當ViewModel中屬性發生變化,View根據監聽(KVO/RAC)到新值的變化更新UI。(前提是他們都做了綁定)

 

MVVM的優點:

      1. 低耦合。視圖(View)可以獨立於Model變化和修改,一個ViewModel可以綁定到不同的"View"上,當View變化的時候Model可以不變,當Model變化的時候View也可以不變。

      2. 可重用性。你可以把一些視圖邏輯放在一個ViewModel裏面,讓很多view重用這段視圖邏輯。

      3. 獨立開發。開發人員可以專注於業務邏輯和數據的開發(ViewModel),設計人員可以專注於頁面設計。

      4. 可測試。界面素來是比較難於測試的,而現在測試可以針對ViewModel來寫。
 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章