android - 在我的应用程序类中声明的演示者中使用静态变量是个好主意吗

标签 android design-patterns mvp

您好,我在我的 Android 应用程序中使用 MVP 模式。我在应用程序类中有一些静态方法来检查连接状态。

public class AppModule extends Application {

  public static boolean isNetworkAvailable() {
        ConnectivityManager connectivityManager
                = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
        return activeNetworkInfo != null && activeNetworkInfo.isConnected();
    }
}

我正在演示者中使用该应用程序级静态方法来检查互联网连接。

public class ActivityWallPresenter {

private CreatrixTestCall creatrixTestCall;

@Inject
public ActivityWallPresenter(CreatrixTestCall creatrixTestCall) {
    this.creatrixTestCall = creatrixTestCall;
}

public void loadPosts(ActivityWallFragmentContract activityWallFragment) {
    this.fragmentContract = activityWallFragment;
    if (AppModule.isNetworkAvailable()) {
        fragmentContract.showProgress();
        callWeb();
    } else {
        fragmentContract.onNetworkDisconnected();
    }
}

调用静态方法是个好主意吗?如果没有,建议我使用其他方法。

最佳答案

为了获得易于理解的代码,如果您使用任何公共(public)静态方法,请将其编写在单独的类中。

不需要写在Application类中。

我认为 Application 类是为了启动某些东西,例如分析 Multidex 等,因为应用程序类是在 ActivitiesServices 之前启动的。正在运行,我主要使用 Application 类来初始化 Multidex

因此,最好为 public static 方法创建另一个类,例如 Utils.java

关于android - 在我的应用程序类中声明的演示者中使用静态变量是个好主意吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41584652/

相关文章:

java - Recyclerview 扩展多个项目

c# - 一个好的 WCF 客户端设计模式

swift - 对于可以从不同来源接收数据的单个对象,我需要什么设计模式?

c# - 静态属性可以在 C# 中返回对象/类的新实例吗

c# - MVP - Presenter 应该有一个整体模型还是多个模型?

GWT 2.1 MVP(事件/地点)和选项卡式显示

java - 我的应用程序正在显示图像网址。如何下载图像以便它可以显示在我的应用程序上

android - 奇怪的 const 定义与 asm

android - Cordova-CLI 和图标(不包括在内)

architecture - 在 ExtJs 中分离 Controller 和 View