1、什麼是MVC架構?
2、什麼是MVP架構?
3、什麼是MVVM架構?
4、Android推薦的MVVM架構實現?
1、什麼是MVC架構?
MVC (Model-View-Controller):M是指邏輯模型,V是指視圖模型,C則是控制器。使用MVC的目的是將M和V的實現代碼分離,從而使同一個程序可以使用不同的表現形式,而C存在的目的則是確保M和V的同步,一旦M改變,V應該同步更新,這與《設計模式》中的觀察者模式是完全一樣。MVC架構示意圖:
mvc
1.1 為何用MVC?
從用戶的角度出發,用戶可以根據自己的需求,選擇自己合適的瀏覽數據的方式。從開發者的角度,MVC把應用程序的邏輯層與界面是完全分開的,這樣,界面設計人員可以直接參與到界面開發,程序員就可以把精力放在邏輯層上。而不是像以前那樣,設計人員把所有的材料交給開發人員,由開發人員來實現界面。1.2 Android中的MVC
視圖層(View):一般採用XML文件進行界面的描述,使用的時候可以非常方便的引入。 控制層(Controller):Android的控制層通常是在Acitvity中實現。 模型層(Model):對數據庫的操作、對網絡等的操作都應該在Model裡面處理,當然對業務計算等操作也是必須放在的該層的。2、什麼是MVP架構?
MVP (Model-View-Presenter):MVP其實是由MVC演變而來的,其中的M依然是指邏輯模型,V依然是指視圖模型,而P(中間橋樑)則代替了C成為了邏輯控制器的角色。MVP架構示意圖:
mvp
2.1 MVC和MVP區別
MVP中View並不直接使用Model,它們之間的通信是通過Presenter (MVC中的Controller)來進行的,所有的交互都發生在Presenter內部;MVC中View會直接從Model中讀取數據而不是通過 Controller。我們知道在MVC裡,View是可以直接訪問Model的。從而,View裡會包含Model信息,不可避免的還要包括一些業務邏輯。在MVC模型裡,更關注的Model的不變,而同時有多個對Model的不同顯示,即View。所以,在MVC模型裡,Model不依賴於View,但是View是依賴於Model的。2.2 MVP的優缺點
MVP優點:
1、模型與視圖完全分離,我們可以修改視圖而不影響模型 ;2、可以更高效地使用模型,因為所有的交互都發生在一個地方——Presenter內部 ;3、我們可以將一個Presenter用於多個視圖,而不需要改變Presenter的邏輯。這個特性非常的有用,因為視圖的變化總是比模型的變化頻繁。 4、如果我們把邏輯放在Presenter中,那麼我們就可以脫離用戶接口來測試這些邏輯(單元測試)MVP缺點:
1、由於對視圖的渲染放在了Presenter中,所以視圖和Presenter的交互會過於頻繁。2、還有一點需要明白,如果Presenter過多地渲染了視圖,往往會使得它與特定的視圖的聯繫過於緊密。一旦視圖需要變更,那麼Presenter也需要變更了。3、什麼是MVVM架構?
MVVM(Model-View-ViewModel):MVVM和MVP的區別其實不大,只不過是把presenter層換成了ViewModel層;再有就是View層和ViewModel層是相互綁定的關係,當我們更新ViewModel層的數據的時候,View層會相應的更新UI。MVP架構示意圖:
mvvm
3.1 MVVM的通信方式:
MVP中View並不直接使用Model,它們之間的通信是通過Presenter (MVC中的Controller)來進行的,所有的交互都發生在Presenter內部;MVVM它採用的是數據綁定(data-binding)方式,而且是雙向綁定:View綁定到ViewModel,然後執行一些命令在向它請求一個動作。而反過來,ViewModel跟Model通訊,告訴它更新來響應UI。3.2 MVVM優點
MVVM模式和MVC模式一樣,主要目的是分離視圖(View)和模型(Model),有幾大優點:
4、Android推薦的MVVM架構實現?
直接上圖:
android mvvm推薦
版權說明:部分內容摘自網絡,如涉及版權問題,請私信聯繫予以刪除,謝謝!