【问题标题】:Android MVP Dependency RulesAndroid MVP 依赖规则
【发布时间】:2016-10-11 17:07:14
【问题描述】:

我已经阅读并测试了很多关于 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)创建了所有内部层,并且通过简单的屏幕旋转被销毁并重新创建,保存状态(当它是必需的),销毁内部类和进程,然后重新创建它们,或以静态方式实现(通过 Singleton 或作为扩展 Application 类的类的实例)所有需要“生存”的类“旋转屏幕? 谢谢大家!

【问题讨论】:

标签: java android dependencies mvp


【解决方案1】:

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

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

关于重新创建,我建议以适当的方式使用 Dagger,这确实可以阻止您重新创建之前仅因为屏幕旋转而生成的对象!您可以将较低层的声明保存在内存中,并在旋转后将它们附加到新视图。

我建议看一下我使用 MVP、Dagger、RxJava 和 Retrofit 开发的这个示例存储库,以更熟悉最佳实践和新的 Android 开发方法:

http://github.com/mmirhoseini/fyber_mobile_offers

希望对你有帮助:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-06-01
    • 1970-01-01
    • 2021-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多