MVC、MVP、MVVM

MVC的概念相信你們應該都已經不陌生了。簡單說來,MVC分別是Model、View和Controller。Model負責數據和訪問數據的方法,View負責展現,Controller負責業務邏輯。這樣各司其職,各功能模塊也就好分離和測試。前端

接觸前端後,又有了許多新名詞。包括MVP和MVVM。今天就來講下這個MVP和MVVM。模塊化

其實他們的區別很簡單。先上一張圖,而後再來一些文字說明。測試

首先明確下傳統的MVC模式。這種模式下,用戶和View交互,而後View將用戶的操做傳遞給Controller,Controller根據業務邏輯對Model進行更新。而View以觀察者方式來判斷Model的變化,再來更新View本身。blog

優勢:不一樣功能分層,利於功能的模塊化。接口

缺點:因爲Controller依賴於view,所以不易測試。同步

 

而後是MVP。在此模式下,C變爲P,既由Controller變爲Presenter。此時,View不是經過監聽Model進行更新,而是Presenter根據Model的變化而後經過 View提供的接口來對View進行修改。方法

優勢:功能集中於Presenter,所以便於測試。im

缺點:可能致使Presenter過於龐大。數據

 

最後是MVVM。在此模式下,C變爲ViewModel。此時,調用關係和MVP差很少,不一樣的是ViewModel中有一個專門的Binder用來負責數據的同步。這樣便可以保證View和Model保持一致,也能夠減小ViewModel的代碼量。img

優勢:減小Controller大小,易維護。

缺點:引入過多,不適合小應用。

相關文章
相關標籤/搜索