Android项目开发的架构选择

作者:陆金龙    发表时间:2023-02-04 09:10   

关键词:  

转载,内容来源:

作者:知乎用户
链接:https://www.zhihu.com/question/45517397/answer/99293671
来源:知乎

1.传统MVC架构

Android最原生、最基础的架构,可以理解为MVC,Controller即是ActivityFragment,这两者掌握了Android系统中绝大多数的资源,并且在内部直接控制View。
传统的Android App一般是以Activity和Fragment为核心,将网络模块,数据库管理块,文件管理模块,常用工具类等分离成若干工具类包,供Activity和Fragment使用。

2.分层架构

绝大多数数据处理的代码是不需要使用Activity和Fragment持有的资源的。

将数据处理统一抽出来形成一层,向上层提供数据接口,而上层并不关心数据的来源(内存,缓存,网络)。把这一层称为DataManager层。

3.MVP架构

MVP就是将大量的View <-> Model 交互剥离出来交由Presenter,Presenter持有抽象的View。

Presenter这个“主导”,导致Presenter和Activity/Fragment高度绑定,Presenter和IXXXView,没有什么复用性。

4.MVVM架构

MVVM相比于MVP,最重要的一个概念就是“数据绑定,Presenter还持有抽象的View,ViewModel连这个都不需要,View通过ViewModel订阅其所需的数据源,ViewModel向View提供改变数据的接口。数据绑定可以采用RxJava方案实现。

App规模不大的情况,其实用不到MVP、MVVM这样的架构。