KotlinKotlin专题Kotlin

Kotlin-MVP框架搭建

2018-04-17  本文已影响388人  雷小歪

Github地址:https://github.com/cn-ljb/mvp-kotlin

该项目是本人使用Kotlin语言搭建的Android MVP架构实现案例,已在部分小项目中使用,感兴趣的同学可以看看,欢迎指证不足。

什么是MVP架构?

MVP架构的概念其实也不必我多说了,网上有大把大把的详解文章,这里就简单介绍下:

通常一般的Android项目结构,我们会在Activity\Fragment中编写大量代码,例如:网络请求、数据填充、页面切换等等,这种项目结构宏观的称之为MVC。

MVC:我们可以把数据源(网络请求、IO...)看作Model层,xml等布局文件看作View层,Activity\Fragment看作Controller层。但在android中xml能力太薄弱了,以至于Activity不得不做很多本不属于它的工作。

MVP:在MVP架构中Model层与MVC一样作为数据源,不过将Activity\Fragment都看作为View层的一部分负责数据的展示和填充,将Model层与View层的关联操作交给了Presenter层。

一个基本的MVP架构图如下:

image

与之前的Android MVC相比,不仅Activity的分工不明确问题得到了解决,还带来另一个好处:Model层与View层不再直接可见,耦合问题得到解决。

该项目MVP架构

在此基础上,该项目中的MVP架构对每个模块进行细化,大致架构图如下:

68747470733a2f2f692e696d6775722e636f6d2f65384675694d442e706e67.png

例如:通过HttpFactory获取UserHttpProtocol的父级IUserHttp接口引用,而不是它的自身引用,从而避免直接操作接口约束之外的公共域:

HttpFactory.getProtocol(IUserHttp::class.java).getUserInfoByName(userName)

截图:

anim.gif
上一篇 下一篇

猜你喜欢

热点阅读