前言
在程序開發(fā)時(shí),會(huì)追求代碼干凈簡(jiǎn)潔易讀且擁有良好的可括展性,因此大家日積月累逐漸總結(jié)改進(jìn)出了一些簡(jiǎn)單好用的架構(gòu)。本文介紹 Android 系統(tǒng)應(yīng)用常用的 4 種架構(gòu):MVC、MVI、MVP、MVVM。
MVC
MVC.png
MVC 架構(gòu)將界面、數(shù)據(jù)、邏輯解耦。
MVI
MVI.png
MVI 相較到 MVC 的不同點(diǎn)在于它不會(huì)更新舊的數(shù)據(jù),而是創(chuàng)建一個(gè)新的 Model 來處理數(shù)據(jù)。如 android message app 的代碼就使用了這種架構(gòu)。
MVP
MVP.png
MVP 進(jìn)一步解偶 Model 和 View 之前的關(guān)系,由 Presenter 作為中間者中轉(zhuǎn) M 和 V 之間的邏輯。適用于 View 和 Model 會(huì)擴(kuò)展的應(yīng)用,如 android incallui app 的代碼就使用了這種架構(gòu)。
MVVM
MVVM.png
MVVM 架構(gòu)加入了“分離關(guān)注點(diǎn)”的概念,使數(shù)據(jù)與組件的生命周期無關(guān):
- 當(dāng) Android 系統(tǒng)銷毀應(yīng)用以釋放資源時(shí),用戶的數(shù)據(jù)不會(huì)丟失。如 Activity 或 Fragment 被銷毀后,下一個(gè) Activity 或 Fragment 實(shí)例仍能使用 ViewModel 中的數(shù)據(jù)。
- 當(dāng)網(wǎng)絡(luò)連接不穩(wěn)定或不可用時(shí),應(yīng)用仍可繼續(xù)工作。
原創(chuàng)文章,歡迎轉(zhuǎn)載,但請(qǐng)注明出處。