मुझे जावा में विरासत के फायदे पता हैं, लेकिन मेरे लिए यह स्वीकार करना मुश्किल है कि इसके नुकसान भी हैं। क्या कोई मुझे जावा में विरासत का एक बुरा उदाहरण दे सकता है?जावा में विरासत का बुरा उदाहरण क्या हो सकता है?
उत्तर
Stack extends Vector
। एक ढेर एक वेक्टर नहीं है।Properties extends Hashtable
। गुणों की एक तालिका हैश तालिका नहीं है।
प्रभावी जावा से उद्धरण के लिए this answer देखें।
यह का उपयोग कर क्या पहले से ही Vector
(वैसे ही Properties
के लिए) में कार्यान्वित किया जाता द्वारा Stack
कार्यान्वयन लिखना आसान था, लेकिन यह समस्याओं बनाया - see here
एक उदाहरण constant interfaces (केवल एक अपरिवर्तनीय फ़ील्ड वाले इंटरफ़ेस) को कार्यान्वित करने का पुराना पैटर्न है, तो इन स्थिरांकों का उपयोग करने की इच्छा रखने वाले वर्ग सुविधा के लिए इस इंटरफेस को कार्यान्वित करेंगे। समस्या यह है कि आपकी कक्षा अब इस इंटरफेस के एपीआई को विरासत में लेती है और इसके डिजाइन में एक्सटेंशन भविष्य में आपके एपीआई को नुकसान पहुंचा सकता है।
इस तरह निरंतर इंटरफेस का उपयोग आम तौर पर इन दिनों विरोधी पैटर्न माना जाता है। जावा 5 के बाद से, आप लगातार इंटरफेस को परिभाषित करने के बजाय स्थिरांक से जुड़े इंटरफ़ेस और static imports के बजाय enums का उपयोग कर सकते हैं।
निरंतर इंटरफ़ेस पैटर्न से इंटरफेस के एक गरीब इस्तेमाल होता है। वह वर्ग आंतरिक रूप से कुछ स्थिरांक का उपयोग एक कार्यान्वयन विस्तार है। निरंतर इंटरफ़ेस को कार्यान्वित करने से इस कार्यान्वयन के विवरण वर्ग के निर्यात किए गए API में रिसाव हो जाते हैं।
वाह, मैं _so_ खुश हूं कि मैंने कभी अपने विभिन्न ब्राउनफील्ड सॉफ्टवेयर परियोजनाओं में कभी सामना नहीं किया है ... – David
मुझे विश्वास है कि जब तक यह "है-ए" दिशानिर्देश का पालन करता है और इसे लागू करने वाला व्यक्ति इसे समझता है और इसके बारे में कोई गड़बड़ नहीं करता है तो वास्तव में कोई नुकसान नहीं होता है।
वहाँ एक बहुत अच्छी लेख here विरासत बनाम के उपयोग के बारे में बात कर रहा है जावा में रचना, उदाहरण के साथ और दूसरे पर एक का उपयोग क्यों करें। एक साक्षात्कार here भी है जिसने इस विषय पर चर्चा की (Gang of Four का संदर्भ "विरासत पर रचना का पक्ष लेने" के लिए)।
यह बहुत व्यापक है, कम से कम मेरे लिए, बहुत वास्तव में दिलचस्प विषय है। बहुत से शुरुआती प्रोग्रामर कुछ विरासत में जा रहे हैं और एक खराब डिजाइन पथ शुरू करते हैं, हमेशा यह नहीं सीखते कि कैसे पॉलिमॉर्फिज्म काम करता है और बेहतर सॉफ्टवेयर लिखने के लिए वे किस डिजाइन पैटर्न और तकनीकों का लाभ उठा सकते हैं। आप एक वस्तु उन्मुख प्रोग्रामर हैं, तो आप कभी नहीं बहुरूपता, इंटरफेस, विरासत, संरचना, कपोल-कल्पना, आदि के बारे में बहुत ज्यादा जानकारी प्राप्त कर सकते
अपरिपक्वता अक्षमता के बिना किसी अन्य की मार्गदर्शन बौद्धिकता का उपयोग है । इम्मानुअल कांत
यदि आप कहते हैं: "यह, आप को स्वीकार करने के लिए मुश्किल है यह नुकसान भी है।", तो मैं इसे समझता हूं - आप नुकसान के बारे में जानते हैं और आपके पास कुछ नैतिक संघर्ष या विचारों का भ्रम है, जो आपके ज्ञान प्रकृति पर सवाल उठाते हैं।" सुनना "और" सुनना "जैसी दो अलग-अलग चीजें हैं, मैं नहीं कर सकता आप समझते हैं, अगर आप अपने आप को कोशिश मत करो
आप को समझने के लिए चाहते हैं, एक किताब पढ़ने की कोशिश उदाहरण के लिए:।
- प्रभावी जावा (आइटम 16): विरासत से अधिक पक्ष संरचना (Link)
- 1. जावा विरासत - उदाहरण चर वैरिएडिंग
- 2. एकाधिक विरासत: एक अच्छा उदाहरण क्या है?
- 3. जावा में विरासत का अधिकतम स्तर क्या है?
- 4. जावा उदाहरण encapsulation, polymorphism, और विरासत विशेषता?
- 5. पायथन में विरासत का क्या मतलब है?
- 6. जावा में बतख टाइपिंग का उदाहरण क्या है?
- 7. दीप वर्ग विरासत पदानुक्रम - बुरा विचार?
- 8. कोर जावा में विरासत
- 9. पायथन में सुपर() कीवर्ड का उपयोग करके एकल विरासत का मूल उदाहरण क्या है?
- 10. जावा में गणना विरासत?
- 11. जेनेरिक्स और विरासत (मेरा बुरा शीर्षक माफ)
- 12. java.lang.NoClassDefFoundError का कारण क्या हो सकता है?
- 13. जावा विरासत और
- 14. जावास्क्रिप्ट में स्मृति भ्रष्टाचार का कारण क्या हो सकता है?
- 15. क्या मेरे पास runOnUiThread का उपयोग करके टोस्ट प्रदर्शित करने का एक उदाहरण हो सकता है।
- 16. क्या प्रश्नों में $ _SESSION ['id'] का उपयोग करना बुरा है?
- 17. डीजेगो मॉडल विरासत: मौजूदा उदाहरण (डाउनकास्ट) का उप-उदाहरण बनाएं?
- 18. जब एकाधिक विरासत एकमात्र उचित समाधान हो सकता है?
- 19. क्या जावा में एनोटेशन विरासत की तरह कुछ है?
- 20. जावा विरासत बनाम सी # विरासत
- 21. हो जाओ नोड उदाहरण
- 22. क्या PHP में ऑटोलोडिंग का उपयोग करना बुरा है?
- 23. क्या यूआरएल में तारांकन हो सकता है?
- 24. जावा संग्रह इंटरफेस में विरासत
- 25. इस सामान्य वर्ग घोषणा का क्या अर्थ हो सकता है?
- 26. "निजी कन्स्ट्रक्टर कैप्चर" मुहावरे का जावा उदाहरण क्या है?
- 27. एंड्रॉइड में इस त्रुटि का कारण क्या हो सकता है?
- 28. जावा का उदाहरण अजीब व्यवहार
- 29. जावा विरासत, बिल्डर पैटर्न
- 30. datetime.now() Django आवेदन में बुरा हो जाता है
आप सभी को धन्यवाद :) – Supereme