कई चीजों के साथ, सही दृष्टिकोण इस बात पर निर्भर करता है कि आप विशिष्ट बटन के लिए क्या करने की कोशिश कर रहे हैं और आप गतिविधि के साथ क्या कर रहे हैं।
एक्टिविटी क्लास इम्प्लीमेंट इंटरफेस :
यह एक अच्छा विकल्प है जब आपके पास केवल एक प्रकार का कार्य होता है जब इस श्रोता को बुलाया जाता है। इसका एक उदाहरण कई क्षेत्रों और एक सेव बटन के साथ एक सरल रूप होगा। मुझे यह पसंद नहीं है कि मेरे इवेंट श्रोता घटना के स्रोत की जांच करें ताकि यह तय किया जा सके कि वास्तव में क्या करना है। मुझे पता है कि कुछ कह सकते हैं कि यह एक स्टाइल की बात है, लेकिन मेरा मानना है कि श्रोता को इस चेक को करने की आवश्यकता नहीं होने के कारण कोड का पालन करना आसान हो जाता है क्योंकि आपको पता चल जाएगा कि प्रत्येक ईवेंट के लिए क्या कहा जा रहा है।
एक अलग श्रेणी का इंटरफ़ेस लागू होता है :
जैसा कि मैंने ऊपर कहा था, मैं इस विकल्प को पसंद करता हूं जब मेरे पास कई आइटम हैं जो एक ही घटना को आग लगा सकते हैं। उपरोक्त उदाहरण का विस्तार करते हुए, एक स्पष्ट बटन जोड़ने की सुविधा देता है जिसमें एक क्लिक श्रोता की भी आवश्यकता होती है। एक श्रोता बनाएं, जो सहेजने वाली क्रियाओं को बेहतर बनाता है और एक जो स्पष्ट क्रियाओं को बेहतर बनाता है। प्रत्येक श्रोता को केवल उन घटकों में जोड़ा जाता है जो उस क्रिया का उत्पादन करेंगे।
इस कार्यान्वयन का एक अतिरिक्त लाभ है जिसे आप देखभाल कर सकते हैं। लाभ यह है कि यह अन्य वर्गों को आपके गतिविधि वर्ग के अंदर घटना को ट्रिगर करने से रोकता है। चूंकि इंटरफ़ेस विधि सार्वजनिक होनी चाहिए, वर्ग के संदर्भ वाला कोई भी व्यक्ति इस घटना को आग लगा सकता है। यदि आप चाहते हैं कि आवेदन में कौन क्या कर सकता है, उस पर ठीक-ठाक नियंत्रण हो, तो एक अलग वर्ग किसी को भी गतिविधि के संदर्भ में रोकता है ताकि आपका फॉर्म क्लियर होने या सहेजे जाने के लिए ट्रिगर हो सके या श्रोता स्रोत का उपयोग करते हुए कोड को संभावित रूप से तोड़ सके, लेकिन करता है खराब इनपुट को संभालना नहीं)।
अनाम आंतरिक श्रेणी का इंटरफ़ेस लागू होता है :
कार्यान्वयन के रूप में एक अलग वर्ग का उपयोग करने के दूसरे विकल्प के निर्माण के लिए यह वास्तव में सिर्फ एक विशिष्ट तरीका है। यह विकल्प और भी प्रतिबंधित कर सकता है, जिसके पास घटना को ट्रिगर करने की पहुंच है क्योंकि कोई भी वर्ग का एक उदाहरण नहीं बना सकता है। हालांकि, मुझे लगता है कि दो विकल्पों के बीच अधिक महत्वपूर्ण कारक कितना काम किया जा रहा है। कुछ पाठ फ़ील्ड साफ़ करना एक सरल और सीधे आगे का ऑपरेशन है। हालाँकि, के लिए सहेजने की प्रक्रिया में कई कार्य शामिल हो सकते हैं आप इनपुट (जो आपको करना चाहिए) को मान्य कर रहे हैं, मूल्यों को संग्रहीत करने और कुछ पोस्ट सेव एक्शन को ट्रिगर करने के लिए डेटाबेस में लिख रहे हैं। इस मामले में, अपनी फ़ाइल के साथ एक अलग वर्ग बनाने से इनपुट फॉर्म और डेटा प्रोसेसिंग के बीच स्पष्ट विभाजन होगा। यह बदले में कई आंतरिक कक्षाओं के साथ बड़ी फ़ाइल के बजाय प्रपत्र कोड को अंदर रखता है।