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