मेरी अज्ञानता को क्षमा करें, लेकिन मेटाबोजेक्ट प्रोटोकॉल क्या है, और रुबी के पास एक है? यदि नहीं, तो रूबी के लिए इसे लागू करना संभव है? रूबी के पास होने पर मेटाबोजेक्ट प्रोटोकॉल के पास कौन सी विशेषताएं हो सकती हैं?क्या रूबी के पास मेटाबोजेक्ट प्रोटोकॉल है और यदि नहीं, तो क्या इसे लागू करना संभव है?
उत्तर
मेटाबोजेक्ट प्रोटोकॉल क्या है?
सबसे अच्छा वर्णन मैं का सामना करना पड़ा Class::MOP
प्रलेखन से है:
एक मेटा वस्तु प्रोटोकॉल एक वस्तु व्यवस्था करने के लिए एक API है।
अधिक विशिष्ट होने के लिए, यह किसी ऑब्जेक्ट सिस्टम (कक्षाओं, ऑब्जेक्ट, विधियों, ऑब्जेक्ट विशेषताओं इत्यादि) के घटकों को सार तत्वित करता है। इन अवशेषों का उपयोग तब ऑब्जेक्ट सिस्टम का निरीक्षण और कुशलतापूर्वक करने के लिए किया जा सकता है, जिसका वर्णन वे करते हैं।
यह कहा जा सकता है कि किसी ऑब्जेक्ट सिस्टम के लिए दो एमओपी हैं; निहित एमओपी और स्पष्ट एमओपी। निहित एमओपी विधि प्रेषण या विरासत जैसी चीज़ों को संभालता है, जो ऑब्जेक्ट सिस्टम कैसे काम करता है के हिस्से के रूप में स्वचालित रूप से होता है। स्पष्ट एमओपी आमतौर पर ऑब्जेक्ट सिस्टम की आत्मनिरीक्षण/प्रतिबिंब सुविधाओं को संभालती है।
सभी ऑब्जेक्ट सिस्टमों में एमओपी निहित है। एक के बिना, वे काम नहीं करेंगे। स्पष्ट एमओपी बहुत कम आम हैं, और भाषा के आधार पर प्रतिबंधित (जावा या सी # में प्रतिबिंब) से व्यापक रूप से भिन्न हो सकते हैं (सीएलओएस एक आदर्श उदाहरण है)।
रूबी एक है?
Reopening builtin classes, redefining builtin functions?Perlmonks लेख पर इस सूत्र के अनुसार मुझे लगता है कि इस सवाल का जवाब कोई है (कम से कम क्या एक एमओपी है की कठोरतम अर्थ में)।
जाहिर है यहाँ तो यह तो जवाब questions there क्योंकि Class::MOP
/Moose लेखक करता है के पर्ल पक्ष में प्रश्न पोस्ट करने के लायक हो सकता है कुछ लोटना जगह नहीं है।
जानकारी के लिए धन्यवाद, हालांकि पहले लिंक को पढ़ना "बिल्टिन क्लास को फिर से खोलना ..." ऐसा प्रतीत होता है कि लेखक को वास्तव में बड़ी मात्रा में उसकी रूबी कमेंटरी गलत है जो उसके बिंदु को कमजोर करती है। रूबी में जो कुछ भी वह करना मुश्किल या असंभव कहता है वह रूबी में वास्तव में करना बहुत आसान है। मुझे रूबी और पर्ल दोनों में कुशलता वाले किसी ऐसे व्यक्ति द्वारा लिखी गई एक समान प्रकृति का एक लेख देखना अच्छा लगेगा :) धन्यवाद हालांकि! – horseyguy
यदि आप परिभाषा के करीब देखते हैं, तो आप देखेंगे कि रूबी में एक एमओपी है। क्या यह सीएलओएस में से एक है? नहीं, सीएलओएस मेटा-सर्कुलर एमओपी जो महान है (मैं भी प्रतिभा कहूंगा), लेकिन यह एक सही तरीका नहीं है, Smalltalk पर एक नज़र डालें। एक नया वर्ग
- : एक को लागू करने के एमओपी आप सभी की जरूरत कार्यों कि करने के लिए अपने क्रम अनुमति देते हैं प्रदान करना है (मान लीजिए कि बुनियादी हैं) एक अलग वर्ग से प्राप्त होता है ("कक्षा संरचना बदलें")
- कक्षा के तरीकों को परिभाषित करने वाला कोड जेनरेट या बदलें।
और रूबी उन सभी को करने का एक तरीका प्रदान करता है।
एक तरफ ध्यान दें पर: कक्षा :: एमओपी के लेखक सही है (IMHO) जब यह दावा है कि चीजें आप एक मेटा परिपत्र एमओपी के साथ कर सकते से कुछ रूबी (अस्वीकरण में करने के लिए कठिन हो सकता है: मैं है शून्य, zilch, nada पर्ल ज्ञान, इसलिए मैं एमओपी जैसे एमओपी बनाम एमओपी की तरह स्मॉलटाक सोच रहा हूं) लेकिन उनमें से अधिकतर बहुत विशिष्ट हैं (मैं यहां मेटाक्लास इंस्टेंटेशन के बारे में सोच रहा हूं) और चीजों को उनके बिना काम करने के तरीके हैं । मुझे लगता है कि यह सब आपके बिंदु दृश्य पर निर्भर करता है, मेटा सर्कुलर एमओपी कूलर हैं लेकिन अकादमिक पक्ष और गैर मेटा सर्कुलर एमओपी पर अधिक लागू करने के लिए अधिक व्यावहारिक और आसान हैं।
- 1. यदि मेरी कक्षा Serializable लागू करता है, तो क्या मुझे इसे अपने उप-वर्गों में लागू करना है?
- 2. क्या रूबी में टीएलएस v1.2 को सक्षम करना संभव है? यदि हां, तो कैसे?
- 3. यदि आपके पास आईबीओलेट है, लेकिन संपत्ति नहीं है, तो क्या यह बरकरार है या नहीं?
- 4. एक्सएसएलटी: यदि टैग मौजूद है, तो टेम्पलेट लागू करें; यदि नहीं, तो स्थिर मान चुनें
- 5. क्या इनलाइन-ब्लॉक तत्व को केंद्र करना संभव है और यदि हां, तो कैसे?
- 6. यदि "onselectstart" है, तो क्या "onselectend" है?
- 7. यदि वाईएएमएल मार्कअप भाषा नहीं है, तो यह क्या है?
- 8. क्या जावा प्रोटोकॉल बफर संदेश का नकल करना संभव है?
- 9. uwsgi प्रोटोकॉल और wsgi प्रोटोकॉल के बीच क्या अंतर है?
- 10. क्या मैंने सी # गतिशील का उपयोग करके वाई-संयोजक लागू किया है, और यदि मेरे पास नहीं है, तो यह क्या है?
- 11. पावरहेल - यदि कोई प्रक्रिया नहीं चल रही है, तो इसे
- 12. क्या रूबी के पास वास्तविक मल्टीथ्रेडिंग है?
- 13. एसएमपीपी प्रोटोकॉल क्या है?
- 14. क्या टेक्स्टमैट में पायथन कोड-पूर्णता लागू करना संभव है?
- 15. क्या जेपीए में खाली सूची के लिए पास करना और परीक्षण करना संभव है?
- 16. क्या डेटाग्रिड में एक ड्रिग्रिड में डेटा फ़िल्टर करना संभव है? यदि हां, तो कैसे?
- 17. क्या कक्षा आरेख स्वचालित रूप से अपडेट किए गए हैं? यदि नहीं, तो क्या ऐसा करना संभव है?
- 18. क्या रूबी में एक चर को अपरिभाषित करना संभव है?
- 19. क्या खोज सूची के लिए स्ट्रिंगपॉजिशन [] के बराबर है? यदि नहीं, तो इसे लागू करने का सबसे तेज़ तरीका क्या है?
- 20. यदि मेरे पास Visual Basic 6.0 नहीं है और VB6 प्रोजेक्ट को संकलित करने की आवश्यकता है तो क्या करें?
- 21. क्या जावा एनम के कुछ मूल्यों को हटाना संभव है और यदि हां, तो कैसे?
- 22. क्या पर्ल मॉड्यूल लोडिंग में पैरामीटर पास करना संभव है?
- 23. क्या डेटाडेटोर में मॉडल लगातार है या नहीं, तो एनडीबी के साथ निर्धारित करना संभव है?
- 24. यदि प्रोफाइलर उत्तर नहीं है, तो हमारे पास अन्य विकल्प क्या हैं?
- 25. क्या इसे लागू किए बिना कक्षा घोषित करना संभव है? (C++)
- 26. यदि "सूची" एक मोनॉयड है, तो इसका "सेट" क्या है?
- 27. यदि मैं जावास्क्रिप्ट फ़ंक्शन में पैरामीटर पास नहीं करता तो क्या होता है?
- 28. क्या यह कानूनी जावास्क्रिप्ट है? काम करने के लिए तर्क पास करना और इसे बदलना
- 29. एसक्लबल्ककॉपी: एसकब्लूल्ककॉपीऑप्शन पास करने के बीच क्या अंतर है। अंतर्निहित ट्रांज़ेक्शन और इसे पास नहीं कर रहा है?
- 30. क्या रूबी स्क्रिप्ट से पर्यावरण संपत्ति निर्यात करना संभव है?
यह मदद करता है? http://stackoverflow.com/questions/1061908/scoping-of-open-classes-in-ruby-versus-mop-in-groovy – zengr
आपने "मेटाबोजेक्ट" शब्द कहाँ सुना? –
@ एंड्रयू, सीएलओएस: http://www.lisp.org/mop/concepts.html – horseyguy