Jus*_*KSU 13 java enums enumeration
我已经看到两种处理具有属性的枚举的方法.这个比那个好吗?
作为财产:
public enum SEARCH_ENGINE {
GOOGLE("http://www.google.com"),
BING("http://www.bing.com");
private final String url;
private SEARCH_ENGINE(String url) {
this.url = url;
}
public String getURL() {
return url;
}
}
Run Code Online (Sandbox Code Playgroud)
作为一种方法:
public enum SEARCH_ENGINE {
GOOGLE {
public String getURL() {return "http://www.google.com";}
},
BING {
public String getURL() {return "http://www.bing.com";}
};
public abstract String getURL();
}
Run Code Online (Sandbox Code Playgroud)
Jon*_*eet 19
第一个显然对我来说更清晰 - 它利用了枚举的每个元素将具有固定字符串URL的通用性,该URL在初始化时是已知的.您在第二个版本中的每个实现中都有效地重复了"逻辑".在每种情况下,您都要重写一个提供相同逻辑的方法("只返回编译时已知的字符串").我更愿意保留压倒行为的改变.
我建议将该url字段设为私有,但在第一个字段中.