gpt4 book ai didi

java - 设置包装类是一个好的做法吗?

转载 作者:行者123 更新时间:2023-12-01 12:05:54 26 4
gpt4 key购买 nike

我正在考虑如何包装我的所有设置,例如我使用一次甚至多次。让我们想得抽象一些。

class WholeApplicationSettingsInHere{
private static boolean setting1, setting2;

WholeApplicationSettingsInHere(){set defaults}

public static boolean getSetting1(){return setting1}
public static void setSetting1(setting1){set setting1}

public static boolean getSetting2(){return setting2}
public static void setSetting2(setting2){set setting2}

...
}

class One(){
/*No fields in here, except private fields*/
methodOne(){use variables from WholeApplicationSettingsInHere class}
methodTwo(){}
}

class Two(){
/*No fields in here, except private fields*/
methodOne(){use variables from WholeApplicationSettingsInHere class}
methodTwo(){}
}

我的问题是,这样做是否是一个好的做法?

最佳答案

您应该使用 PreferenceManagerSharedPreferences 来存储和检索用户首选项。在类中使用静态 boolean 值似乎并不是一个好主意。

只需使用您的方法创建一个简单的类,例如:

public class PreferencesHelper {

private PreferencesHelper() {} // No instantiation

public static boolean getSetting1(Context context) {
return PreferenceManager.getDefaultSharedPreferences(context).getBoolean(PREFERENCE_KEY, defaultValue);
}

public static void setSetting1(Context context, boolean value) {
Editor editor = PreferenceManager.getDefaultSharedPreferences(context).edit();
editor.putBoolean(PREFERENCE_KEY, value);
editor.apply();
}

}

最后,回答你的问题:是的,如果你执行类似上述代码的操作,这可能是一个很好的做法。通过这样做,您就不可能将首选项键分散在您的应用程序中,并且使您的代码更易于阅读。

话虽如此,如果您需要一次设置多个首选项,那么调用 setSetting1()setSetting2( )setSetting3() 等,因为您一遍又一遍地重新创建对象。在这种情况下,只需获取 Edtior 对象,放置所有更改,然后应用更改即可。

关于java - 设置包装类是一个好的做法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27603471/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com