Android MVP依赖规则

时间:2016-09-13 15:23:29

标签: java android dependencies mvp

我已经阅读并测试了很多关于Android中MVP模式的内容,但是如果我想尊重“依赖规则”和MVP模式,我就会问你对什么是最佳实践的看法。

如何将其解释为许多文章(请参阅此链接:http://fernandocejas.com/2014/09/03/architecting-android-the-clean-way/),我们的应用程序必须分为多个层,外层可以实例化并使用内层。内层接收所有参数(变量,上下文,视图等)并返回响应或使用回调等。

通过使用接口并直接调用接口而不是类来隔离层,这也是一种很好的做法。 (参见链接:http://www.tinmegali.com/en/model-view-presenter-mvp-in-android-part-2/)。 在上面的链接中,作者指定他不使用回调方法,而是使用接口从内层移动到外层(不遵守依赖规则)。

我对此的疑问有两个:

1)最好为调用类使用接口(外层是指被调用类的接口)和被调用类(内层是指到类调用的接口,或者只需要在一个方向上,例如只有外部类指的是内部接口

2)因为外层(UI)创建了所有内层,并且通过简单的屏幕旋转被破坏并重新创建,是否更好(对于内存泄漏)保存状态(当它是必需的),破坏内部类和进程,并重新创建它们,或者以静态方式 istantiate (通过Singleton或作为扩展Application类的类的实例)所有需要“生存”的类“旋转屏幕? 谢谢大家!

1 个答案:

答案 0 :(得分:1)

我相信MVP在某种程度上是一个Tuxedo开发,这意味着你必须在实现它们之前分离所有内容并使用接口来声明不同的方法。所以我对你的第一个问题的答案是肯定的!

通常,在这种情况下,我认为我是定义图层的人,而另一个初级开发人员即将使用我开发的核心,因此,最好限制他的行为并减少他的错误和错误。

关于重新创建,我建议以正确的方式使用Dagger,它真的会阻止你重新创建之前因屏幕旋转而生成的对象!您可以将下层声明保留在内存中,并在旋转后将它们附加到新视图中。

我建议你看看我使用MVP,Dagger,RxJava和Retrofit开发的这个样本仓库,以便更熟悉最佳实践和新的Android开发方法:

  

http://github.com/mmirhoseini/fyber_mobile_offers

我希望它有所帮助:)