मेरे पास एक क्लाइंट लाइब्रेरी है जिसमें मैं अपनी बाकी सेवा के लिए http दूरस्थ कॉल कर रहा हूं और फिर मैं उस ग्राहक को List<DataResponse>
वापस लौटा रहा हूं जो मेरी लाइब्रेरी को प्रतिक्रिया के साथ कॉल कर रहा है, जो मुझे मेरे आरईएसटी से मिल रहा है अगर DataResponse
ऑब्जेक्ट के आसपास लपेटा गया है तो किसी भी त्रुटि के साथ सेवा।लंबे कन्स्ट्रक्टर बनाने से कैसे बचें
public enum ErrorCode {
// enum values
private final int code;
private final String status;
private final String description;
// constructors and getters
}
यहाँ है मेरी StatusCode
enum वर्ग और::
public enum StatusCode {
SUCCESS, FAILURE;
}
तुम मेरे DataResponse
वर्ग में देख सकते हैं मैं क्षेत्रों में बहुत कुछ तो है
public class DataResponse {
private final String response;
private final boolean isLink;
private final TypeOfId idType;
private final long ctime;
private final long lmd;
private final String maskInfo;
// below are for error stuff
private final ErrorCode error;
private final StatusCode status;
// constructors and getters here
}
यहाँ मेरी ErrorCode
enum वर्ग है इसके आधार पर मेरे पास एक बहुत लंबा कन्स्ट्रक्टर है और जब भी मैं DataResponse
ऑब्जेक्ट करता हूं तो मेरे पास new DataResponse(.......)
के साथ एक बड़ी लाइन है। भविष्य में मेरे पास और फ़ील्ड हो सकते हैं लेकिन अभी के लिए मेरे पास केवल इन फ़ील्ड हैं।
क्या कोई बेहतर तरीका है जिसका उपयोग मैं DataResponse
ऑब्जेक्ट बनाने के लिए कर सकता हूं और फिर मेरी लाइब्रेरी से List<DataResponse>
वापस लौटा सकता हूं?
आप निर्माता पैटर्न का उपयोग कर सकते हैं। – YoungHobbit
http://stackoverflow.com/a/6395981/3885376 –
मैं अभी तक किसी निर्माता पर निर्भर नहीं हूं। आपके पास बहुत सारे क्षेत्र हैं? अपघटन के लिए नौकरी की तरह लगता है। [यह उत्तर] देखें (http://stackoverflow.com/questions/33784390/object-oriented- डिज़ाइन-how-important-is-encapsulation-when-therere-lots-of-da/33785266#33785266)। यदि आपको अभी भी लगता है कि आप बाद में कन्स्ट्रक्टर को बहुत अधिक डेटा पास कर रहे हैं, तो आप एक बिल्डर पैटर्न का उपयोग कर सकते हैं। हालांकि उचित अपघटन आमतौर पर चाल करता है। मुझे वैकल्पिक पैरामीटर के लिए उपयोगी बनाने के लिए बिल्डर्स मिलते हैं (टेलीस्कोपिंग कन्स्ट्रक्टर से बचने के लिए जो कई मानकों से परहेज करने के बजाय डिफ़ॉल्ट मानों की आपूर्ति करते हैं) –