[英]Is assigning variables directly to a wrapper class a good practice in Java?
[英]Is setting wrapper class a good practice?
我在考慮如何包裝所有設置,例如,我使用了一次甚至更多次。 讓我們考慮一下抽象性。
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(){}
}
我的問題是,這樣做是否是一種好習慣?
您應該使用PreferenceManager
和SharedPreferences
來存儲和檢索用戶首選項。 在類中使用靜態布爾值似乎並不是一個好主意。
只需使用您的方法創建一個簡單的類,例如:
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對象,放置所有更改,然后應用更改。
很難回答“這是一個好習慣”,因為沒有一個明確的答案。 這完全取決於您的上下文。 您可能需要提供一個MCVE ,它可以更准確地准確反映您在做什么。
我要說的是,將那些變量和方法靜態化是一個非常可怕的想法-如果您想要設置類的兩個實例,接下來會發生什么?
而且,在您說“我只需要一個設置實例”之前,您可能無法提前知道。 這是對static關鍵字的濫用。
到那時,為什么不只使用Properties類的實例呢?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.