Base类
- View :IView(非必须)、BaseActivity、BaseFragment、BaseMviActivity、BaseMviFragment
- ViewModel:BaseViewModel
- Intent:BaseIntent
- ViewState:BaseViewState
- Application:BaseApplication(非必须)
Manager类
- DownloadManager
- SPManager
- LogManager
- ImageLoadManager
- 等等Manager
Utils类
- DeviceUtils
- FileUtils
- LogUtils
- DisplayUtils
- DateUtils
- SPUtils
- JsonUtils
- XmlUtils
- HttpUtils
- ZipUtils
- AsyncUtils
- ToastUtils
- DialogUtils
- ViewUtils
- 等等Utils
扩展函数
- String类扩展函数
- view类扩展函数(ImageView、TextView 等等 view)
- 等等其他扩展函数
总结
以上便是一个最小版Base 架构的基础组成部分(精简版)
- model类涉及到具体的数据模型,封装在具体项目 moudel 中
- 数据库读写由于涉及到具体的model类,封装到具体 项目 moudel 中
- HttpUtils 封装通用的网络请求
- Retrofit 需要封装具体接口,适合将其封装到具体 项目 moudel 中
- view生命周期相关联的异步功能封装在BaseActivity、BaseFragment中,非view生命周期关联的异步功能封装在AsyncUtils中
- manager类大多都是单例,切不可持有Context(Application除外)
- utils类大多都是封装static方法,它不应该包含成员变量,当然别忘了将其构造方法私有化,它不应该被new
- 异步功能封装建议使用协程
- ImageLoadManager的封装是为了方便更换图片加载库,目前主流图片加载库有5个左右,更换时只需要更换ImageLoadManager中的方法即可,JsonUtils也是同理
- ......
- 通用公用的功能均可以封装在Base架构中,具体业务逻辑、数据相关的适合封装在具体项目中