- Android Jetpack開發:原理解析與應用實戰
- 黃林晴
- 837字
- 2022-07-05 09:43:54
1.1 Android開發架構的發展歷程
互聯網技術日新月異,越來越多優秀的開發工程師開始追尋更高效率的開發模式,因此,不斷涌現出新的軟件開發模式,其中MVC、MVP以及MVVM這三種模式一直是軟件行業爭論的焦點。下面就分別來看一下這三種開發模式在Android應用開發中是如何應用的吧。
1. MVC
MVC的全稱是Model-View-Controller,即模型–視圖–控制器,Model負責數據的管理,View負責UI的顯示,Controller負責邏輯控制。在Android中充當視圖層角色的是各種xml文件,充當邏輯控制層角色的是Activity或者Fragment,充當模型層的是網絡請求等部分。MVC框架邏輯如圖1-1所示。

圖1-1 MVC框架邏輯
由于XML的能力較弱,在實際項目中數據設置一般都是在Activity或Fragment中完成的,因此導致Activity既充當了Controller層又充當了View層,且Controller層需要調用Model層獲取數據,從而導致絕大多數的任務都是在Controller中完成的,這也就使得Controller層不易維護,因為Model層與View層耦合性較高,容易牽一發而動全身。
2. MVP
MVP的全稱是Model-View-Presenter,Model負責數據的管理,View負責UI的顯示,Presenter負責邏輯控制,但是與MVC不同的是,MVP改變了通信方向,View層和Model層不再直接通信,而是通過Presenter層作為“中間人”,MVP框架邏輯如圖1-2所示。

圖1-2 MVP框架邏輯
View層產生事件,通知Presenter層,Presenter層則通知Model層更新數據,Model層更新數據后,返回并通知Presenter層,Presenter層再通知View層更新界面。MVP相比于MVC的好處顯而易見,即將View層與Model層解耦,使得每一層的職責更清晰、明確。但MVP作為“中間人”,需要借助接口回調的方式轉發消息,從而導致接口類文件增多,且實現類無法避免許多無用的空實現。
3. MVVM
其實MVP已經算是一種很好的開發模式了,MVVM模式則相當于MVP的一種改進版本,MVVM的全稱是Model-View-ViewModel,要注意的是,這里的ViewModel并不能直接與Jetpack中的ViewModel組件劃等號。
ViewModel中有一個Binder,在不同系統的MVVM開發模式中對Binder有不同的實現,比如前端開發中的Vue.js或iOS開發中的RAC,而在Android開發中充當Binder角色的則是Jetpack組件中的DataBinding,Binder的作用就是替代MVP中Presenter層的“中間人”角色。此模式會將View和ViewModel層完全解耦,從而使得職責劃分更清晰,MVVM框架邏輯如圖1-3所示。

圖1-3 MVVM框架邏輯
MVVM開發模式是當前Google最推薦的開發模式,為了便于使用MVVM開發模式,Google還打造了一套工具集——Jetpack。
- The Complete Rust Programming Reference Guide
- 程序員面試筆試寶典(第3版)
- Google Flutter Mobile Development Quick Start Guide
- Hands-On Machine Learning with scikit:learn and Scientific Python Toolkits
- C語言程序設計習題解析與上機指導(第4版)
- 高效微控制器C語言編程
- Getting Started with PowerShell
- Scala編程實戰(原書第2版)
- Python數據結構與算法(視頻教學版)
- Learning Concurrent Programming in Scala
- Learning OpenCV 3 Computer Vision with Python(Second Edition)
- Yii Project Blueprints
- OpenCV with Python By Example
- Python Interviews
- Elasticsearch Essentials