在Android上用MVP模式编程的实践

首先,谁是V?谁是P?(M我认为不是问题)

View,应该是实现显示逻辑,在Android开发中,我们认为Fragment、Activity都可以被当做View,他们主要任务就是控制显示逻辑,这部分代码不太经常重用。View通过调用P的业务逻辑,来实现业务。业务包括同步的业务(可以在UI线程操作)和异步的任务(如网络、磁盘IO等耗时操作),并根据P的业务返回结果来响应地改变UI。

对Presenter的实现,我们用AndroidAnnotations框架的EBean实现(如果不熟悉这个框架,请Google)。对于异步任务,通过AA的@Background标签来做,他的实现原理是讲任务通过一个线程池进行调度。对异步任务的返回结果,我们自定义了一个View标签,通过接口回调回去(View甚至可以不实现接口,当然就没有回调了)。这样无论View调用Presenter,还是Presenter回调View,都是通过接口实现,完全剥离了两者之间的耦合,P层的业务可以高度重用。

为了实现这个目标,我们对AndroidAnnotations做了一点扩展,Github地址在:https://github.com/ChatGame/androidannotations

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。