मैं पूछना चाहता हूं कि अज्ञात वर्ग बनाम आंतरिक कक्षाओं का उपयोग करने पर अच्छा अभ्यास क्या है?जावा/एंड्रॉइड: अज्ञात स्थानीय वर्ग बनाम नाम वर्ग
मैं एक एंड्रॉइड एप्लिकेशन लिख रहा हूं, जिसमें कई यूआई तत्व (बटन, टेक्स्ट फ़ील्ड इत्यादि) शामिल हैं। उनमें से कई के लिए मैं श्रोताओं के कुछ प्रकार की जरूरत है, इसलिए आवेदन के onCreate
में मैं की तरह काफी छोटा गुमनाम वर्गों के समूह है:
someButton.setOnClickListener(
new View.OnClickListener() {
public void onClick(View v) {
// do something...
}
}
);
ऐसे गुमनाम वर्ग के से प्रत्येक 5 - 20 लाइनों बड़ा - छोटे पर्याप्त और संक्षेप पुस्तक में जावा ™ से सिफारिशों के लिए अच्छा फिट बैठता है:
सामान्य तौर पर, आप एक स्थानीय वर्ग के बजाय एक अनाम वर्ग के उपयोग पर विचार करना होगा जबकि:
- कक्षा में बहुत छोटा शरीर है।
- कक्षा के केवल एक उदाहरण की आवश्यकता है।
- कक्षा परिभाषित होने के ठीक बाद उपयोग की जाती है।
- कक्षा का नाम आपके कोड को समझने में आसान नहीं बनाता है।
लेकिन समस्या यह है, IMO, कि onCreate
काफी बड़ा हो जाता है और कोड अधिक पढ़ सकते हैं और जल्दी यह करने में देख कर समझने के लिए जटिल हो जाता है। यह अभी भी समझना आसान है, लेकिन बस बहुत बड़ा है।
तो क्या इस तरह के मामले में बेहतर अभ्यास हो सकता है - छोटे आंतरिक उप-वर्गों, जहां यह के प्रत्येक अच्छी तरह से अलग किया जाता है, लेकिन सिर्फ एक बार या बेहतर इस्तेमाल किया बजाय गुमनाम वर्गों का उपयोग रखने का गुच्छा है?
मेरे अनुभव: गुमनाम वर्ग का उपयोग जारी रखने रखते हैं लेकिन, एक (या अधिक) निजी विधि (रों) करने के लिए अपने कोड का कुछ हिस्सा ले जाएँ और यह (उन्हें) onCreate विधि से कॉल करने के लिए प्रयास करें। – mhshams