मैं निम्नलिखित पंक्तियों के साथ इस पर बहस करूंगा:
- वास्तव में आपकी विधि कई मान क्यों लौटाती है? हम किस तरह के सामंजस्य के बारे में बात कर रहे हैं - क्या उन मूल्यों को वास्तव में एक ही वर्ग पर क्षेत्र होना चाहिए, या क्या वे केवल संयोग से एक ही विधि द्वारा वापस आ गए हैं, लेकिन अन्यथा असंबंधित? यदि यह बाद की बात है, तो आप विधि को दो विधियों में विभाजित करने पर विचार कर सकते हैं, बल्कि। संपादित करें: यहां अपने निर्णय का उपयोग करें; कभी-कभी एक प्रकार का "संयोग" सामंजस्य सबसे अच्छा विकल्प हो सकता है। एक अन्य विकल्प एक जोड़ी या टपल निर्माण का उपयोग करना है, हालांकि ओओपी में, ये आमतौर पर सार्वजनिक एपीआई (कुछ उल्लेखनीय अपवाद मानक संग्रह, आदि) में नहीं देखे जाते हैं।
- यदि मान वर्ग बनाने के लायक हैं, तो मैं शायद एक आंतरिक वर्ग का उपयोग करने के खिलाफ सलाह दूंगा। आंतरिक कक्षाएं आमतौर पर आंतरिक कार्यान्वयन विवरण के रूप में उपयोग की जाती हैं, जो बाहर से छिपी हुई हैं। क्या कोई कारण है कि यह परिणाम एक "पूर्ण विकसित" वर्ग नहीं होना चाहिए, अपने आप में?
- डेटा रखने के अलावा, इस नए वर्ग के लिए कौन से ऑपरेशन लागू हैं? ऑब्जेक्ट ओरिएंटेड डिज़ाइन में, आप संबंधित डेटा को संबंधित डेटा (जो आपके इरादे भी लगते हैं) के करीब होना चाहते हैं। क्या जिस विधि का आप उल्लेख कर रहे हैं, वह इस वर्ग पर नहीं रहना चाहिए?
संक्षेप में, मैं देखूंगा कि क्या मैं इस "डेटा ऑब्जेक्ट" को डेटा और व्यवहार दोनों के साथ एक भाग-बाहर वर्ग में बदल सकता हूं। एक अतिरिक्त टिप्पणी के रूप में, आप कक्षा को अपरिवर्तनीय बनाना चाहते हैं, क्योंकि इसका राज्य एक बार सेट हो जाता है। इसे अपरिवर्तनीय बनाने से इसे गलत तरीके से सेट होने से रोकने में मदद मिलेगी, या बाद में संशोधित किया जा सकता है (कहें, कोई व्यक्ति इसमें से किसी एक को अशक्त करने और इसे पास करने के लिए सेट कर रहा है)।
संपादित करें: जैसा कि पेटकोस सेबा सही ढंग से बताते हैं, यहां लागू किया जा रहा सिद्धांत एकल जिम्मेदारी सिद्धांत ( एसआरपी ) है - जिस वर्ग को आप बनाने की कोशिश कर रहे हैं, उसकी वास्तव में एक जिम्मेदारी होनी चाहिए (इसे बदलने के लिए एक कारण के रूप में परिभाषित किया गया है) )। यह डिज़ाइन दिशानिर्देश आपको यह पता लगाने में मदद करेगा कि आपके दो क्षेत्र एक ही कक्षा में हैं या नहीं। विकिपीडिया उदाहरण के साथ चिपके रहने के लिए, आपकी कक्षा को एक प्रकार की रिपोर्ट के रूप में देखा जा सकता है, जिस स्थिति में यह SRP के अनुरूप है, लेकिन बिना अधिक जानकारी के टिप्पणी करना मुश्किल है।
BitInteger[] java.math.BigInteger.divideAndRemainder(BitInteger val)
। यह 2 पूर्णांक को एक सरणी में इसके रिटर्न मान के रूप में देता है।