के अंदर तर्क मेरे सहयोगियों और मैं enums में तर्क के बारे में एक चर्चा कर रहे थे। मेरी निजी वरीयता में जावा एनम्स में कोई भी तर्क नहीं है (हालांकि जावा ऐसा करने की क्षमता प्रदान करता है)।एक 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 के अंदर एक सुविधा विधि है कि एक नक्शा लौटे होने के आसपास केंद्रित। सुविधा के चारों ओर केंद्रित enum के अंदर विधि रखने के लिए तर्क। विचार यह था कि आपको इसे प्राप्त करने के लिए किसी सेवा पर जाना नहीं है, लेकिन सीधे enum से पूछ सकते हैं।
मेरा तर्क चिंता के अलगाव के आसपास केंद्रित है और किसी सेवा के किसी भी प्रकार के तर्क को सारणीबद्ध करता है। मुझे नहीं लगता था कि "सुविधा" इस विधि को एक enum के अंदर रखने के लिए एक मजबूत तर्क था।
सर्वोत्तम अभ्यास प्रथाओं से, कौन सा बेहतर है? या यह व्यक्तिगत वरीयता और कोड शैली के मामले में बस आ जाता है?
अगर तार अंतिम कर रहे हैं, के बजाय स्थिर init समय में एक अपरिवर्तनीय नक्शा बनाने हर बार किसी toMap() कहता है एक रोलिंग पर विचार –