Alternative of Multiple inheritance in Java -


मैंने दो सेम बनाए हैं

  class BackPageBean {String backPage = null; ::} वर्ग सूचना संदेश बीन {स्ट्रिंग सूचना संदेश = नल; ::}}  

अब, यदि कोई क्लास बैकपेज परिचित है तो यह पेजबेन का विस्तार करेगा, या अगर उसे किसी तरह का संदेश दिखाने की आवश्यकता है तो सूचना संदेश बीन विस्तार होगा।

  वर्ग BackPageAware वापस बढ़ाता हैPageBean {} वर्ग InfoMessAware सूचना संदेश विस्तारित करता है {} someFunction () {यदि (theObject उदाहरण backPageBean) {prepareTheBackPage (theObject.getBackPage ()); } यदि (theObject उदाहरण के बारे में सूचना संदेश बीन) {showtheInformation (theObject.getMessage ()); }}  

अब समस्या यह है कि यदि मुझे एक बीन है जो कि दोनों पीओपीएजवेयर और साथ ही साथ सूचनावर्धक भी है, जैसा कि हमारे पास एकाधिक विरासत नहीं है, तो क्या होना चाहिए

बस मेरी टिप्पणी स्पष्ट करने के लिए।

बस की तरह डार्थ ईरु का कहना है कि आप दो इंटरफेस और दो डिफ़ॉल्ट कार्यान्वयन बनाते हैं। जब आपके पास बीन की ज़रूरत होती है तो दोनों व्यवहारों की ज़रूरत होती है, तो आपके पास यह क्लास दो इंटरफेस लागू होता है, लेकिन आप डिफ़ॉल्ट रूपांतरों के चर भी बनाते हैं। इस तरह आपको अभी भी किसी भी कोड को डुप्लिकेट करने की आवश्यकता नहीं है।

  इंटरफ़ेस इन्फोमैसेववेयर {स्ट्रिंग मिलमसेज (); } इंटरफ़ेस BackPageAware {स्ट्रिंग getBackPage (); } Class DefaultInfoMessAware {स्ट्रिंग getMessage () {वापसी "संदेश"; }} वर्ग DefaultBackPageAware {स्ट्रिंग getBackPage () {वापसी "बैकपेज"; }} वर्ग MyBean लागू करता है InfoMessAware, BackPageAware {निजी InfoMessAware messAware = new DefaultInfoMessAware (); निजी बैकपेजअवेयर backPageAware = नया DefaultBackPageAware (); स्ट्रिंग लेट मेसेज () {वापसी messAware.getMessage (); } स्ट्रिंग मिलबैकपेज () {वापस लौटें PageAware.getBackPage (); }}  

Comments

Popular posts from this blog

c++ - Linux and clipboard -

What is expire header and how to achive them in ASP.NET and PHP? -

sql server - How can I determine which of my SQL 2005 statistics are unused? -