मेरे पास एक इंटरफ़ेस है - "EventHandler" - जो कई विधियों की घोषणा करता है। "EventHandlerAdapter" - - कि eventhandler लागू करताक्या यह वास्तव में एडाप्टर पैटर्न का एक उदाहरण है?
public interface EventHandler {
void handleEvent1();
void handleEvent2();
void handleEvent3();
void handleEvent4();
}
मैं भी एक वर्ग है। हालांकि, यह वास्तव में कुछ भी "लागू" नहीं करता है। मुद्दा यह है कि, यदि कोई और वर्ग इवेंट हैंडलर को कार्यान्वित करना चाहता है, लेकिन इसके सभी तरीकों से नहीं, तो यह आसानी से इवेंट हैडलर एडाप्टर का विस्तार कर सकता है और केवल उन्हीं विधियों को ओवरराइड कर सकता है।
public class EventHandlerAdapter implements EventHandler {
public void handleEvent1() {}
public void handleEvent2() {}
public void handleEvent3() {}
public void handleEvent4() {}
}
मैं एक से अधिक अवसर पर कुछ इस तरह देखा है। "EventHandlerAdapter" नाम से मुझे पता चलता है कि यह एडाप्टर पैटर्न का एक उदाहरण है ... लेकिन क्या यह वास्तव में है? मैंने सोचा कि एडाप्टर का बिंदु किसी मौजूदा कार्यान्वयन को किसी अन्य चीज़ में अनुवाद करना था। मैं नहीं देखता कि यह मामला कैसा है।
यदि यह एडाप्टर पैटर्न का उदाहरण नहीं है, तो यह क्या है? निश्चित रूप से इस तरह की कुछ पहचान की गई है।
हाँ, स्थिरता एक अच्छी बात है;) – Bozho
कुछ सोचने के बाद, मैंने फैसला किया है कि "AbstractEventHandler" जैसे कुछ अधिक उपयुक्त है। यह संगत नहीं हो सकता है, लेकिन वास्तव में, जावा एपीआई स्वयं भी संगत है? – someguy
@ सोमेगुय, सार सार * का अर्थ है कि वर्ग 'सार' है, इस प्रकार यह उपयोग करने के लिए _must_ को उप-वर्गीकृत किया जाना चाहिए। जैसे जावा संग्रह फ्रेमवर्क में ऐसे कई वर्ग शामिल हैं। इस मामले में, कक्षा उपयोग योग्य है, और यह _may_ subclassed हो। तो मेरे लिए नाम भ्रामक होगा। –