MVC-MVP-MVVM

MVC-MVP-MVVM

Android中常用的三種框架

面試,優化代碼,提高開發效率

不使用框架,所有的代碼都是由Activity承擔
在這裏插入圖片描述
簡介:Android大型項目中,爲了達到模塊內部的高聚合和模塊間的低耦合性,提高項目的可維護性和可擴展性,我們通常會使用一種框架模型,本門課程主要帶大家認識學習Android的MVC-MVP-MVVM三種框架模型。在課程中除了會對比介紹每個模型的優缺點,還會結合代碼案例來解析每個模型的使用。

MVC框架模型

MVC全名Model View Controller,即模型(model)-視圖(view)-控制器(controller)

MVC模型簡介

在這裏插入圖片描述

Controller:Activity、Fragment
View:layout、View 控件
Model:數據處理(網絡請求,SQL等)

1.負責View層面的功能
2.model提供數據
3.view和model不直接通信,由present來聯繫
在這裏插入圖片描述

MVC代碼演練

MVC優缺點

1.將數據的獲取與界面的展示分離
2.解決個層之間的通信問題

MVP框架模型

MVP模型簡介

在這裏插入圖片描述

MVP與MVC的差別
1.Model與View不再直接進行通信,而是通過中間層Presenter來實現
2.Activity的功能被簡化,不再充當控制器,主要負責View層面的工作

MVP代碼演練

MVP優缺點

優點:
解決了MVC中Controller與View過度耦合的缺點,職責劃分明顯,更加易於維護
缺點:
接口數量多,項目複雜度升高。隨着項目複雜度的提升,Presenter層會越來越臃腫

MVP使用建議:

1.接口規範化(封裝父類接口以減少接口的使用量)
2.使用第三方插件自動生成MVP代碼
3.對於一些簡單的界面,可以選擇不使用框架
3.根據項目複雜程度,部分模塊可以選擇不使用接口

MVVM框架模型

MVVM模型簡介

在這裏插入圖片描述
MVVM是Model-View-ViewModel的簡寫,MVVM在MVP的基礎上實現了數據視圖的綁定(DataBinding),當數據變化時,視圖會自動更新;反之,當視圖發生變化時,數據也會自動更新。
1.減少了接口數量
2.告別繁瑣findViewById操作

DataBinding學習

是谷歌官方發佈的一個實現數據綁定的框架,(實現數據與視圖的雙向綁定),DataBinding可以幫助我們在android中更好的實現MVVM模式

1.啓用DataBinding
2.修改佈局文件爲DataBinding佈局
3.數據綁定(單向綁定@Bindable,雙向綁定@=)

MVVM代碼演練

在這裏插入圖片描述

提供View,ViewModel一級Model三層
將佈局修改爲DataBinding佈局
View與ViewModel自建通過DataBinding進行通信
獲取數據並展示在界面上

LIveData+ViewModel
1.LiveData是一個可以被觀察的數據持有者,它可以通過添加觀察者的方式來讓其他組件觀察它的變更
2.LiveData遵從應用程序的生命週期(如果LiveData的觀察者已經是銷燬狀態,LiveData就不會通知觀察者。)

MVVM優缺點

優點:
實現了數據和視圖的雙向綁定,極大的簡化了代碼
缺點:
Bug難以調試,並且dataBinding目前還存在一些編譯問題。

課程總結

MVC:學習簡單但是解耦不夠徹底
MVP:解耦更加徹底,學習起來也相對比較簡單,但是代碼相對比較繁瑣
MVVM:代碼邏輯非常簡潔,但是學習成本較大

學習視頻鏈接地址

發佈了76 篇原創文章 · 獲贊 5 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章