android MVC MVP MVVM 蜀山師兄的心得筆記

先入爲主:這三種方式都是一種模式核心思想。他們思想會具體到項目裏某些類或某控件..或.。不要鑽牛角尖非要是這個類,一定是那個類充當某個角色。要領悟解決問題的思想啊。

MVC 

m:業務邏輯處理。就是相關的數據操作類,如網絡,數據庫等拿到對應的業務數據返回(用接口回傳數據給C層的放式比較多)

v;處理數據顯示的部分 就是xml

c:處理用戶交互問題。  就是 Actitvity   通過接口通信交互m跟c,橋樑作用

特點

耦合性低

可擴展行好,

模塊職責劃分明確

因爲業務增多,C的代碼冗餘。 MVP就出來解決問題了,降低耦合度

 

MVP

M:業務邏輯和實體類模型

V:對應Avtivity  負責view的繪製跟交互

P:完成view與mode之間的交互

mvp的優點就是新增Presenter 充當mvc中c的作用。 進行數據交互 。

MVC與MVP


你發現mvc斷開M—V之間的連線. C替換成P 是不是跟MVP神似了。 你已經接近真相了。 

唯一區別就是mvc中Model與View有交互。有連線。 比如工具類或者網絡請求處理完後接口返回數據通知UI刷新。 

P層持有view的接口 。 在P層初始化的時候同時初始化model的具體實現類,進行相關的邏輯處理之後 。得到返回接口通過view層的接口回調給view 刷新數據

 具體mvp實現demo 代碼可參考https://blog.csdn.net/wj2liu/article/details/71566824。我就不寫了哈

MVVM    最新框架。  至於爲何它會產生。 你要記住所有技術或者思想產生都是爲了解決問題 

 

M:實體類模型

V:對應Avtivity和 xml  負責view的繪製與用戶交互  

VM(viewModel):負責完成view與Mode之間的交互。負責業務邏輯

沒錯跟mvp類似 。 還記得我開頭先入爲主說的思想嘛。 只是具現的類是不同的 。

新技術1:數據綁定新技術即雙向綁定技術。 簡單理解是不用刷新。數據源發生改變,xml自動更新顯示

新技術2:View的功能進一步的強化,具有控制的部分功能。簡單理解 。控制器代碼遷移到xml裏(xml你變了。你開始有控制器的功能了。說好只是繪製視圖。)這裏注意了,控制器代碼語法也不一樣了

優勢:控制器的功能代碼遷移到xml activity代碼變更少了。對View或ViewController的數據處理部分抽象出來一個函數處理model

以後數據處理邏輯就省很多事了。 (這裏可能你們不太理解,數據綁定對應的數據源是model。看結構圖)以後一個函數處理一個view

MVVM設計模式的缺點  ;1.顯示數據出問題,Bug定位不好找。2.雙向綁定一個view  。這樣view的重複利用率降低了。 以爲一個view對應一個model是固定雙向綁定。無法重複利用 3.

 

 

 

 

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