【发布时间】:2012-09-11 15:49:10
【问题描述】:
我有在所有程序中广泛使用静态变量的习惯,尤其是在我使用 Android 时。我倾向于使用它们,因为有时感觉通过 Intents 发送 10 个或更多值很麻烦。所以,我只是将它们声明为静态变量,并使用“点”运算符轻松地在其他类中访问它们。使用静态变量的另一个原因是当我制作一个 Utility 类 以在整个应用程序中使用时。就像我在下面给出的代码一样,可以帮助我在不同的活动中使用变量。
Utility.java
public class Utility {
public static Facebook fb;
public static AsyncFacebookRunner fbAsyncRunner;
public static String[] fbPermissions = {"email", "read_stream", "user_birthday"};
public static final String PREF_UTILITY_FILE_NAME = "PrefUtilityFile";
public static SharedPreferences prefs;
public static Editor editor;
public static String access_token;
public static long expires;
}
我在网上搜索了类似的问题,遇到了this和this,但他们似乎没有给出这个问题的最终答案。在大多数地方,我看到了相互矛盾的意见,因此完全感到困惑。
这是一个好的编程习惯还是坏的?我应该使用它还是不使用它?
【问题讨论】:
-
就个人而言,我会说不好,因为您正在模拟全局变量。看看构建器模式。
-
您使用它们的方式?不好。
-
不是真的回答你的问题,所以我正在做评论。如果我遇到这样的代码,如果存储的东西相关,我会寻找什么。称为 Utility 的类在所有案例中的 90% 都像一个垃圾场。一系列不相关的东西。
-
但他们没有最终答案并不意味着它不是重复的。存在相互矛盾的意见这一事实也不是开始第二个问题的理由,所以这就是我将其标记为重复的原因。