Android MVVM設(shè)計模式(摸索)

正文

今天我們來一起來了解下Android MVVM設(shè)計模式

關(guān)鍵字:MVVM壳繁、Jetpack坟募、DataBinding、ViewModel番川、LiveData到涂、Kotlin

我之前開發(fā)的時候,覺得不按框架而按自己的想法去寫是可以的颁督,但是自己開發(fā)了幾次之后就發(fā)現(xiàn)維護(hù)起來特別地困難践啄,現(xiàn)在我的想法改變了,我覺得是時候?qū)W學(xué)使用框架開發(fā)沉御,所以我寫關(guān)于Android MVVM的一系列文章屿讽,我也是剛開始學(xué)(MVVM都出來好幾年了,甚是尷尬吠裆,趕緊學(xué)起來吧)

我們先從幾個概念出發(fā)

MVVM

一種設(shè)計框架伐谈,分為View、ViewModel硫痰、Model三層

View層:包括Activity衩婚、Fragment,主要負(fù)責(zé)UI控件的更新顯示效斑,不涉及任何的業(yè)務(wù)邏輯

ViewModel:這一層和View層是相反的非春,它只負(fù)責(zé)業(yè)務(wù)邏輯,不能做UI方面的工作

Model:主要是數(shù)據(jù)的獲取和整合,可以從本地數(shù)據(jù)庫獲取數(shù)據(jù)奇昙,也可以從后臺服務(wù)器獲取护侮,提供一個數(shù)據(jù)倉庫整合數(shù)據(jù)

這三層只是上層擁有下層的引用,反過來不能储耐,比如View層可以擁有ViewModel層的引用羊初,但是ViewModel不能擁有View層的引用,而且不能跨層引用什湘,也就是說View層不用直接擁有Model層的引用长赞,必須要通過ViewModel引用Model層才能實現(xiàn)相關(guān)的功能

那么,我們明白了MVVM的思想了該怎么設(shè)計呢闽撤,代碼應(yīng)該怎么寫呢得哆,這個不要慌,我們慢慢學(xué)(我也是剛學(xué)哟旗,正在摸索中)贩据,先往下看

Jetpack

先上一張官網(wǎng)的圖

image.png

image.png

官網(wǎng)描述地很清楚,但是我們還是不知道從何開始闸餐,不急饱亮,我們再來了解幾個有趣牛逼的東西

DataBinding

這個東西就牛逼了,而且Jetpack2.0也集成了DataBinding

DataBinding:早在2015年的IO大會就已經(jīng)介紹了(太尷尬了舍沙,出來這么久了我都還沒用過)近上,它可以幫助我們實現(xiàn)MVVM,它可以將數(shù)據(jù)綁定在xml中场勤,既可以單向綁定戈锻,也可以雙向綁定歼跟,單向綁定好理解和媳,所謂雙向綁定就是數(shù)據(jù)變化時,UI也做相應(yīng)的變化

這個我們現(xiàn)在只要知道它可以幫助我們實現(xiàn)MVVM就可以了哈街,具體怎么用我們后面慢慢講(其實我是真的沒用過留瞳,我要用過之后才能寫,不能亂寫)

LiveData

這個也是在Jetpack里的一個架構(gòu)骚秦,我們先從字面意思上對它解讀

首先Data一看就知道它應(yīng)該和數(shù)據(jù)有關(guān)她倘,然后就是Live,有生命的意思作箍,在Android中有生命周期這一概念硬梁,那這樣下來,我們可以得到一個結(jié)論:LiveData它應(yīng)該是一個和生命周期相關(guān)的數(shù)據(jù)之類的架構(gòu)

LiveData:一種具有感知生命周期能力的可觀察數(shù)據(jù)持有類胞得,一般在ViewModel中定義

為什么要賦予它生命周期感知能力呢荧止,其實是為了有效地防止內(nèi)存泄漏

Kotlin

相信大家對這個名字不陌生了吧,現(xiàn)在很多開發(fā)都是用的Kotlin,漸漸地成為了一種趨勢了跃巡,我之前也只是知道這個語言危号,不去了解,就像當(dāng)時只用eclipse + ADT開發(fā)app而不去了解AS一樣素邪,現(xiàn)在我可能要花點時間去學(xué)習(xí)下Kotlin了外莲,不然就OUT,跟不上時代了

最后附上Google在B站上的Android開發(fā)教學(xué)視頻(之前還沒注意Google居然入駐B站兔朦,尷尬)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末偷线,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子沽甥,更是在濱河造成了極大的恐慌淋昭,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,496評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件安接,死亡現(xiàn)場離奇詭異翔忽,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)盏檐,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評論 3 392
  • 文/潘曉璐 我一進(jìn)店門歇式,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人胡野,你說我怎么就攤上這事材失。” “怎么了硫豆?”我有些...
    開封第一講書人閱讀 162,632評論 0 353
  • 文/不壞的土叔 我叫張陵龙巨,是天一觀的道長。 經(jīng)常有香客問我熊响,道長旨别,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,180評論 1 292
  • 正文 為了忘掉前任汗茄,我火速辦了婚禮秸弛,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘洪碳。我一直安慰自己递览,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,198評論 6 388
  • 文/花漫 我一把揭開白布瞳腌。 她就那樣靜靜地躺著绞铃,像睡著了一般。 火紅的嫁衣襯著肌膚如雪嫂侍。 梳的紋絲不亂的頭發(fā)上儿捧,一...
    開封第一講書人閱讀 51,165評論 1 299
  • 那天冷离,我揣著相機(jī)與錄音,去河邊找鬼纯命。 笑死西剥,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的亿汞。 我是一名探鬼主播瞭空,決...
    沈念sama閱讀 40,052評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼疗我!你這毒婦竟也來了咆畏?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,910評論 0 274
  • 序言:老撾萬榮一對情侶失蹤吴裤,失蹤者是張志新(化名)和其女友劉穎旧找,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體麦牺,經(jīng)...
    沈念sama閱讀 45,324評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡钮蛛,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,542評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了剖膳。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片魏颓。...
    茶點故事閱讀 39,711評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖吱晒,靈堂內(nèi)的尸體忽然破棺而出甸饱,到底是詐尸還是另有隱情,我是刑警寧澤仑濒,帶...
    沈念sama閱讀 35,424評論 5 343
  • 正文 年R本政府宣布叹话,位于F島的核電站,受9級特大地震影響墩瞳,放射性物質(zhì)發(fā)生泄漏驼壶。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,017評論 3 326
  • 文/蒙蒙 一矗烛、第九天 我趴在偏房一處隱蔽的房頂上張望辅柴。 院中可真熱鬧,春花似錦瞭吃、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,668評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至霹陡,卻和暖如春和蚪,著一層夾襖步出監(jiān)牢的瞬間止状,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,823評論 1 269
  • 我被黑心中介騙來泰國打工攒霹, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留怯疤,地道東北人。 一個月前我還...
    沈念sama閱讀 47,722評論 2 368
  • 正文 我出身青樓催束,卻偏偏與公主長得像集峦,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子抠刺,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,611評論 2 353

推薦閱讀更多精彩內(nèi)容