ग्रूवी में लक्षण, विरासत और इंटरफेस, उनका उपयोग कब करना है?


10

मैं ग्रूवी सीख रहा हूं और मैंने हाल ही में 2.3 में जोड़े गए नए फीचर के बारे में सीखा है, जो कि ट्रेट्स के अतिरिक्त है । अब मेरे लिए ऐसा लगता है कि ट्रिट्स आपको मूल रूप से सब कुछ एक सुपर-क्लास करने की अनुमति देता है और एक इंटरफ़ेस कर सकता है।

ग्रूवी के लिए ट्रिट्स को जोड़ने से इनहेरिटेंस और इंटरफेसेस अप्रचलित हो जाते हैं?

और यदि नहीं, तो इनमें से प्रत्येक तंत्र का उपयोग करने का सबसे अच्छा समय क्या है?



"ग्रूवी और मैंने हाल ही में 2.3 में जोड़े गए नए फीचर के बारे में सीखा है, जो कि ट्रेट्स के अतिरिक्त है" - ट्रेट्स को पहले प्री-2.0 ग्रूवी में जोड़ा गया था एक एएसटी एडोन के माध्यम से ग्रूवी ++ बूस्टर कहा जाता है, देखें code.google.com/p / groovypptest / wiki / लक्षण
van Geir

आपको वास्तव में लक्षण के बारे में डॉक्स पढ़ना चाहिए । यहां दिए गए कोई भी उत्तर उन सभी बातों का उल्लेख किए बिना पूरा नहीं होगा जिनके बारे में डॉक्स बात करते हैं; आपको विशेष रूप से 13 - अंत
smac89

जवाबों:


4

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

यदि आप नहीं जानते कि कैसे शुरू करें, तो लक्षण का उपयोग करें। आप लचीलापन प्राप्त करते हैं और यदि आवश्यक हो तो बाद में इंटरफेस या क्लास इनहेरिटेंस पर स्विच कर सकते हैं।


3
इंटरफेस में आप डिफ़ॉल्ट विधि को परिभाषित कर सकते हैं, इसलिए तार्किक अंतर क्या है?
बजे गिल्ड बारूचियन

मैं भी लक्षण और इंटरफ़ेस डिफ़ॉल्ट तरीकों के बीच अंतर के साथ भ्रमित हूँ। मैं केवल यह मान सकता हूं कि ग्रूवी में लक्षण पहले से ही जावा में डिफ़ॉल्ट विधियों की तुलना में पेश किए गए थे
ओलिव

एक विशेषता आपको नियमित क्षेत्रों को परिभाषित करने की अनुमति देती है, न कि केवल स्थिर क्षेत्रों के रूप में जावा का इंटरफ़ेस आपको सीमित करता है
smac89

यदि आप लक्षणों के बारे में भ्रमित हैं, तो डॉक्स पढ़ें । वे बहुत जानकारीपूर्ण हैं
smac89

1
@ smac89, धन्यवाद, यह वास्तव में मददगार था!
ओलिव
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.