架構之路——MVVM架構模式

1、架構圖

在這裏插入圖片描述

2、每層職責劃分

  • Model層

Model層就是職責數據的存儲、讀取網絡數據、操作數據庫數據以及I/O,一般會有一個ViewModel對象來調用獲取這一部分的數據。

  • View層

View層做的僅僅和UI相關的工作,我們只在XML、Activity、Fragment寫View層的代碼,View層不做和業務相關的事,也就是我們的Activity 不寫和業務邏輯相關代碼,一般Activity不寫更新UI的代碼,如果非得要寫,那更新的UI必須和業務邏輯和數據是沒有關係的,只是單純UI邏輯來更新UI,比如:滑動時頭部顏色漸變、editttext根據輸入內容顯示隱藏等,簡單的說:View層不做任何業務邏輯、不涉及操作數據、不處理數據、UI和數據嚴格的分開。

  • ViewModel層
    ViewModel 只做和業務邏輯和業務數據相關的事,不做任何和UI、控件相關的事,ViewModel 層不會持有任何控件的引用,更不會在ViewModel中通過UI控件的引用去做更新UI的事情。ViewModel就是專注於業務的邏輯處理,操作的也都是對數據進行操作,這些個數據源綁定在相應的控件上會自動去更改UI,開發者不需要關心更新UI的事情。

3、實現原理

Databinding實現雙向數據綁定,配合solid設計原則以及設計模式來實現MVVM架構

4、關於Databinding及使用

【參考鏈接】:https://www.jianshu.com/p/53925ccb900e

5、優缺點

  • 解決了mvp中接口龐大,修改複雜的弊端 雙向數據綁定。
  • 對bug定位帶來困難

demo實戰案例,後續補充~~

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