Google 推荐的体系架构,现做总结如下
github例子:https://github.com/googlesamples/android-architecture
todo-mvp
描述:这是一个基于MVP的demo备忘录,示例中包含备忘录列表、增删改查等。
简单说下MVP模式,Model、View、Presenter,之间的关系
MVP好处:
- 分离了视图逻辑和业务逻辑,降低了耦合
- Activity只处理生命周期的任务,代码变得更加简洁
- 视图逻辑和业务逻辑分别抽象到了View和Presenter的接口中去,提高代码的可阅读性
- Presenter被抽象成接口,可以有多种具体的实现,所以方便进行单元测试
- 把业务逻辑抽到Presenter中去,避免后台线程引用着Activity导致Activity的资源无法被系统回收从而引起内存泄露和OO
目录结构,按照功能模块划分,每一个功能模块为一个package,如下:
体会:
结构清晰,方便定位文件;
activity、fragment只做view该做的事情,解耦效果明显;
业务逻辑都在presenter中,方便查找问题。