我和我的同事們正在討論enums中的邏輯。我個人的偏好是而不是在Java枚舉中有任何類型的邏輯(儘管Java提供了這種能力)。套管在此的討論圍繞着具有枚舉內的便捷方法,它返回一個地圖:enum中的邏輯
public enum PackageType {
Letter("01", "Letter"),
..
..
Tube("02", "Packaging Tube");
private String packageCode;
private String packageDescription;
..
..
public static Map<String, String> toMap() {
Map<String, String> map = new LinkedHashMap<String, String>();
for(PackageType packageType : PackageType.values()) {
map.put(packageType.getPackageCode(), packageType.getPackageDescription());
}
return map;
}
}
我個人的偏好是拉了這一點到服務。將enum中的方法放在方便性中的論點。這個想法是,你不需要去獲得它的服務,但可以直接查詢枚舉。
我的觀點主要集中在關注點分離和將任何類型的邏輯抽象爲服務。我不認爲「便利」是把這種方法放入枚舉中的有力論據。
從最佳實踐的角度來看,哪一個更好?或者它只是歸結爲個人偏好和代碼風格的問題?
如果字符串是最終的,考慮在靜態初始化時間創建一個不可變的映射,而不是在每次有人調用映射時滾動一個映射() – 2010-03-19 00:28:08