-
目錄
總結
小結
- 介紹 看完重繪你的認知,mvvm是moel,view,viewmodel,而model是負責獲取資料,view負責展示,至于viewmodel是負責業務邏輯,mvvm實在mvp的基礎上建立的一套解耦性更強的框架,view和viewmodel的物件持有關系的是view持有viewmodel的物件viewmodel不能持有view層的物件,因為viewmodel的生命周期要長于activity,mvvm基于databinding,livedata,lifecycle,viewmodel等框架進行搭建的,lifecycle是基于注解器以及觀察者模式進行生命周期系結的框架可以用來關聯activity或者fragment宣告周期方法從而達到一個自動呼叫生命周期方法關聯的方法的效果,livedata是基于lifecycle框架實作的基于觀察者的資料驅動框架,在mvvm中可以用來vm層與view層通信,databinding框架是用來實作資料ui的雙向系結,通過databinding下的ViewDataBinding,持有Activity或者fragment和view的參考,主要作用一次遍歷View,實體化所有的子view,并存盤在陣列中,這里解決了findviewbyid性能問題看,DataBinderManagerImpl提供了布局檔案layoutid到ViewDataBinding類物件的映射,主要用于加載layout回傳對應的ViewDataBinding物件,DataBinding在編譯時會生成一個ViewDataBinding的子類,
-
總結
MVVM模式和MVC模式一樣,主要目的是分離視圖(View)和模型(Model),有幾大優點
1. 低耦合,視圖(View)可以獨立于Model變化和修改,一個ViewModel可以系結到不同的"View"上,當View變化的時候Model可以不變,當Model變化的時候View也可以不變,
2. 可重用性,你可以把一些視圖邏輯放在一個ViewModel里面,讓很多view重用這段視圖邏輯,
3. 獨立開發,開發人員可以專注于業務邏輯和資料的開發(ViewModel),設計人員可以專注于頁面設計,使用Expression Blend可以很容易設計界面并生成xaml代碼,
4. 可測驗,界面素來是比較難于測驗的,而現在測驗可以針對ViewModel來寫,
-
小結
當然我更希望你們能夠會掌握這些框架,不是會了一套框架忘記了另一套每一套由每一套的好處,比如mvc他適合寫一些小邏輯形勢的,不一定非得要用這一套框架都有自己的好處,
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/349660.html
標籤:其他
下一篇:在Android studio上自定義精美界面,要求包含選項選單、背景關系選單及其對應的監聽事件(高級UI組件使用練習)附完整原始碼
