美文网首页
Google官方android架构todo-mvp(译)

Google官方android架构todo-mvp(译)

作者: caoyy | 来源:发表于2017-03-14 00:01 被阅读0次

todo-mvp架构项目地址

todo-mvp


这个app版本被称作todo-mvp,给这个工程的其他示例提供一个基础的架构展示。这个版本的目的在于:

  • 在没有使用任何架构框架下,提供一个基础的Model-View-Presenter (MVP) 架构。
  • 作为该项目中相比其他示例异同点的一个参考。

注意:在这个项目的所有库分支中使用了如下命名约定去区分View类和MVP views:

  • "Android View"是指android.view.View类。
  • 在mvp架构中从presenter中接受命令的视图是指"view"。

你需要什么####

在研究这个示例之前,先去熟悉以下内容对你将会很有帮助:

这个todo-mvp项目使用了以下依赖:

在这个版本的app和其他依赖于它的app里,都实现了以下的类和接口:

  • 一个定义了view和presenter之间联系的协议类。
  • 一个创建fragments和presenters的Activity
  • 一个实现了view接口的Fragment
  • 一个实现了相对应协议接口的presenter类。

一个presenter通常处理业务逻辑,相对应的view持有Android UI的工作。视图层是不包含逻辑的; 它将presenter的命令转换成UI动作,同时将监听到的用户的操作传递到presenter层。

实现app####

每一个使用不同的途径实现相同功能的app版本都去展示和对比很多架构设计。比如这个版本用如下途径去解决通用的实现问题:

  • 这个示例使用product flavors去取代编译期的模块,提供假数据来做手动和自动测试。
  • 这个版本使用回调来处理异步任务。

留心下面的插图,显示这个app版本使用fragments,这其中有两个原因:

  • activities和fragments的使用允许更好的关系分离促成了MVP的实现。在这个app版本中,Activity是总控制器,来创建和关联views 和presenters。
  • fragments 的使用支持平板电脑的布局,或者多视图的ui。

    这个app版本包含了很多覆盖presenters,repositories,data sources的单元测试,同时包含了依赖假数据的ui测试,方便的通过依赖注入提供假模块,想更多了解依赖注入来方便测试的,详情请看Leveraging product flavors in Android Studio for hermetic testing

维护app####

这个示例包含了类和接口,比如presenters和约定,这些相比于那些传统的没有使用特殊架构的项目来说,增加了很多代码量。

下面的表格统计了实现这个app版本的代码量,你可以使用它来和这个工程的其他示例做一个基础的比较。

Language Number of files Blank lines Comment lines Lines of code
Java 46 1075 1451 3451
XML 34 97 337 601
Total 80 1172 1788 4052

</br>
</br>
自我学习,粗略翻译,仅供参考,不当之处烦请指出!

相关文章

网友评论

      本文标题:Google官方android架构todo-mvp(译)

      本文链接:https://www.haomeiwen.com/subject/jhzqnttx.html