2012-10-26 15 views
9

के लिए कार्यान्वयन रणनीतियां मैं वर्तमान में स्क्वाक पर्यावरण में स्मॉलटाक सीख रहा हूं और मैं "स्क्वाक - ऑब्जेक्ट लैंड टू क्विक ट्रिप" पढ़ रहा हूं। मैं प्रवेश कुछ पहले पेज 36 पर किताब से अजगर और जावा से ज्ञान और इस वाक्य के साथ वस्तु उन्मुख प्रतिमान मुझे लगता है कि बना दिया है:ऑब्जेक्ट ओरिएंटेशन

स्मालटाक एक वस्तु उन्मुख भाषा का एक वर्ग आधारित कार्यान्वयन है।

लघु वाक्य लेकिन बहुत रोचक। ओओ में कक्षा, ऑब्जेक्ट, उदाहरण जैसे सभी शब्द अच्छी तरह से परिभाषित प्रतीत होते हैं और एक और एकमात्र सच्चे अर्थ को इंगित करते हैं और आपको सामान्य वर्गों में आने की संभावना है जैसे "वस्तुएं कक्षा के उदाहरण हैं"।
लेकिन आप शायद ही कभी कार्यान्वयन रणनीतियों के बारे में सुनते हैं। इस मामले में ऑब्जेक्ट उन्मुख अवधारणा के कार्यान्वयन का क्या अर्थ है? कक्षाओं के अलावा ओओ भाषाओं के कार्यान्वयन क्या हैं?

उत्तर

9

जावास्क्रिप्ट एक ओओ भाषा के कार्यान्वयन प्रोटोटाइप आधारित कार्यान्वयन है।

कक्षा को उप-वर्ग बनाने और उस नई कक्षा का उदाहरण बनाने के बजाय, आप प्रोटोटाइप क्लोन करके व्यवहार प्राप्त करते हैं।

एक ऐतिहासिक नोट के रूप में मुझे यह जोड़ना चाहिए कि जावास्क्रिप्ट शायद सबसे व्यापक रूप से उपयोग की जाने वाली प्रोटोटाइप-भाषा का उपयोग कर रहा है, पहला डेविड यूनगर और रैंडल स्मिथ का Self language था।

prototypes स्क्वाक के लिए तैरते हुए कई implementations हैं। मैंने उनका उपयोग नहीं किया है, इसलिए मैं पुस्तकालयों पर टिप्पणी नहीं कर सकता।

+0

इस अंतर्दृष्टि के लिए धन्यवाद! – phineas

+0

यहां स्मॉलटाक, http://scg.unibe.ch/staff/adriankuhn/protalk के लिए एक और प्रोटोटाइप कार्यान्वयन है जो वास्तव में कक्षा बिंदु को उस ऑब्जेक्ट को इंगित करने के लिए इंगित करता है। मेरे सर्वोत्तम ज्ञान के लिए, यह स्मॉलटाक के लिए एकमात्र प्रोटोटाइप ढांचा है जो स्मॉलटॉक के लिए * देशी * प्रोटोटाइप प्रदान करता है। Smalltalks क्लास आधारित मॉडल के शीर्ष पर एक परत के रूप में अन्य सभी कार्यान्वयन प्रोटोटाइप। – akuhn

5

मैंने देखा कभी नहीं, लेकिन पन्ना के बारे में पढ़ा, कि वस्तु उन्मुख है लेकिन न तो वर्ग है और न ही प्रोटोटाइप आधारित लेकिन एक विशेष निर्माता की मदद से वस्तुओं "एक के बाद एक" के निर्माण के लिए लगता है:

हालांकि, एमरल्ड ऑब्जेक्ट्स को अपनी सृजन के लिए क्लास ऑब्जेक्ट की आवश्यकता नहीं होती है। अधिकांश ऑब्जेक्ट-आधारित सिस्टम में, प्रोग्रामर पहले क्लास ऑब्जेक्ट निर्दिष्ट करता है जो उसके सभी उदाहरणों की संरचना और व्यवहार को परिभाषित करता है। क्लास ऑब्जेक्ट नए उदाहरण बनाने के लिए नए आमंत्रणों का भी जवाब देता है।

इसके विपरीत, ऑब्जेक्ट कन्स्ट्रक्टर निष्पादित करके एक एमराल्ड ऑब्जेक्ट बनाया जाता है। एक ऑब्जेक्ट कन्स्ट्रक्टर एक एमरल्ड अभिव्यक्ति है जो किसी ऑब्जेक्ट के प्रतिनिधित्व, संचालन और प्रक्रिया को परिभाषित करता है।

Andrew Black, Norman Hutchinson, Eric Jul, and Henry Levy: "Object Structure in the Emerald System" देखें।

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