मैंने हाल ही में (4 दिन पूर्व) जावा में प्रोग्रामिंग शुरू कर दी है। मेरे पास सी ++ और PHP से कुछ समग्र प्रोग्रामिंग अनुभव है। मेरा सवाल है: क्या हम जावा में एक समारोह को कार्यान्वित कर सकते हैं, जो कि सभी वर्गों में उपलब्ध है? मैं कुछ वैश्विक लॉगिंग फ़ंक्शन के बारे में सोच रहा हूं, मुझे कई स्थानों पर कॉल करने की आवश्यकता है (लॉग इवेंट, त्रुटियां इत्यादि)।जावा फ़ंक्शन (विधि) हर जगह उपलब्ध (वैश्विक)
कल्पना कीजिए कि मेरे पास दो वर्ग हैं, ए और बी। मुझे दोनों में लॉगिंग फ़ंक्शन कॉल करने की आवश्यकता है, लेकिन मैं पूरे फ़ंक्शन बॉडी (भयानक चीज़ जो मुझे विश्वास नहीं है) की प्रतिलिपि बनाना नहीं चाहता, और मैं इसे सख्त कहना चाहता हूं (एक और वर्ग बनाने के बिना, इसे तुरंत चालू करना, और फिर उदाहरण से कॉल करना), जैसे logEvent(someVariable)
। तो मुझे एक अमूर्त कक्षा सी का उपयोग करना चाहिए, जो ए और बी विस्तारित होगा, लेकिन वे पहले से ही अन्य वर्ग (अंतर्निर्मित) का विस्तार कर रहे हैं। चूंकि एकाधिक विरासत की अनुमति नहीं है (है ना?), मुझे कुछ चाल करने की ज़रूरत है। सिंगलटन मुझे भी प्रसन्न नहीं कर रहा है। PHP या C++ में मैं केवल फ़ंक्शन बॉडी के साथ अलग फ़ाइल बनाउंगा और फिर इसे शामिल करूंगा। है, तो इस तरह इसे कहते हैं (यह एक utils वर्ग, या जो कुछ भी हो सकता है)
public class A extends SomeClass {
String error = "Error from class A";
logEvent(error);
}
public class B extends SomeOtherClass {
String error = "Error from class B";
logEvent(error);
}
आप बुराई 'Singleton' पैटर्न के बारे में पढ़ सकते हैं। –
@LeeMeador "बुराई" राय का विषय है। – hexafraction