2012-06-11 15 views
5

मैंने कई पाठ्यपुस्तकों में पढ़ा है किमॉड्यूल == rubins रूबी में हैं?

रुबी में, एक वर्ग केवल एक वर्ग का उप-वर्ग हो सकता है। मिक्सिन, हालांकि, एक सामान्य पूर्वजों के बिना कक्षाओं को साझा करने के लिए कक्षाओं की अनुमति देते हैं।

प्रैक्टिस में, जब भी मुझे एकाधिक विरासत को लागू करने की आवश्यकता होती है। मैंने Modules & मिश्रणों का उपयोग नहीं किया है। उदाहरण के लिए:

Module name_goes_here 
    def method_name_goes_here 
    ..... 
    end 
end 

फिर, मैं सिर्फ उन्हें एक वर्ग

class MySubClass < MySuperClass 
    include module_name 
end 
अब

में शामिल हैं, मैं कई माणिक किताबें प्रत्येक mixins & फिर अचानक बारे में बात कर के रूप में भेजा है, वे के सभी मॉड्यूल के बारे में बात शुरू करते हैं यह स्पष्ट किए बिना मिश्रित & मॉड्यूल का संबंध क्या है।

तो, प्रश्न है: क्या मॉड्यूल == मिश्रण रूबी में हैं? यदि हां, तो क्यों। यदि नहीं, तो क्या अंतर है?

पुनश्च: माफ करना, अगर इसकी एक मूर्खतापूर्ण सवाल

उत्तर

13

मिक्सिन्स एक भाषा अवधारणा है जो कुछ कोड को कक्षा में इंजेक्ट करने की अनुमति देती है।

यह रूबी में कीवर्ड include द्वारा लागू किया गया है जो पैरामीटर के रूप में Module लेता है।

तो हाँ, रूबी में, मिश्रणों को मॉड्यूल के साथ कार्यान्वित किया जाता है। लेकिन मॉड्यूल के मिश्रण के मुकाबले अन्य उपयोग हैं।

उदाहरण के लिए, मॉड्यूल का उपयोग आपके वर्गों को नाम देने या वैश्विक नामस्थान को प्रदूषित करने के लिए उपयोगिता कार्यों को समाहित करने के लिए भी किया जा सकता है।

+0

मिश्रणों के अलावा, रूबी में मॉड्यूल के "अन्य उपयोग" क्या हैं? – CuriousMind

+0

@ गौरीश का उपयोग उन नाम विधियों या encapsulating विधियों के लिए किया जा सकता है जो वैश्विक नामस्थान प्रदूषण से बचाने के लिए कक्षा में नहीं हैं। –

+0

@AndrewMarshall धन्यवाद, मैंने जवाब में आपका योगदान जोड़ा –

5

wikipedia article

ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग भाषाओं में से, एक mixin एक वर्ग कि एक निश्चित सुविधा प्रदान करता है विरासत में मिला जा करने के लिए या सिर्फ एक से पुन: उपयोग किया है subclass, जबकि तत्काल के लिए मतलब नहीं है (उस वर्ग की वस्तुओं की पीढ़ी)।

तो हाँ, रुबी में मॉड्यूल मॉड्यूल को तुरंत चालू किए बिना कार्यक्षमता का पुन: उपयोग करने का एक तरीका प्रदान करते हैं। मैं कहूंगा, "रूबी में मिश्रित मॉड्यूल के साथ कार्यान्वित किए जाते हैं", लेकिन "मिश्रित मॉड्यूल और इसके विपरीत नहीं हैं"।

संबंधित मुद्दे