[英]In Java, what is the better way to use Enums? With static constants or with constructors and off-file constants? [on hold]
我們正在為用戶可以登錄的可能環境創建一個枚舉。 但是在我的團隊中,我們對哪種更好的進行方式存在分歧。 我希望能從社區中獲得一些見識,以便我們所有人都能學習。
有什么更好的方法來解決這個問題? 並請解釋原因。
public enum Environment {
Development,
Production;
//
// Constants
//
private static String BASE_URL_STRING_PROD = "https://prodBaseURL.com";
private static String BASE_URL_STRING_DEV = "https://devBaseURL.com";
private static String LOGIN_SUFFIX = "/login";
private static String LOGOUT_SUFFIX = "/logout";
public String loginURLString() {
return baseURL() + LOGIN_SUFFIX;
}
public String baseURL() {
switch (this) {
case Development: return BASE_URL_STRING_PROD;
case Production: return BASE_URL_STRING_DEV;
default: return REDIRECT_URI_PROD;
}
}
}
public enum Environment {
Development(Constants.BASE_URL_STRING_DEV, Constants.LOGIN_SUFFIX),
Production(Constants.BASE_URL_STRING_, Constants.LOGIN_SUFFIX);
String baseURL;
String loginURLSuffix;
public Environment(String baseURL, String loginURLSuffix) {
this.baseURL = baseURL;
this.loginURL = loginURL
}
public String loginURLString() {
return this.baseURL + Constants.LOGIN_SUFFIX;
}
}
public class Constants {
public static final String BASE_URL_STRING_PROD = "https://prodBaseURL.com";
public static final String BASE_URL_STRING_DEV = "https://devBaseURL.com";
public static final String LOGIN_SUFFIX = "/login";
public static final String LOGOUT_SUFFIX = "/logout";
}
編輯:StackOverflow將問題擱置為“基於意見”的問題。 因此,為了澄清這一點,我進行了以下編輯:
方法1和方法2之間的區別是否純粹基於觀點?
我不喜歡您嘗試設置的屬性的任何一種方法。
您在這里擁有的是代碼中的環境配置,這是您應該避免的事情,因為如果這些參數中的任何一個發生更改,都需要更改代碼。 環境URL最適合配置文件(XML,YAML,.properties,選擇毒葯),而不是硬編碼到源代碼中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.