जेन-क्लास, प्रॉक्सी और रीफाई के अलावा, हमारे पास defrecord और deftype है। ये बाद के दो विकल्प नामित जावा वर्गों (और डिफ्रेकॉर्ड के मामले में, नामित घटकों के साथ किसी भी प्रकार की संरचना के लिए आपकी पहली पसंद के निर्माण के लिए आपका पहला विकल्प होना चाहिए।)
datatypes page on clojure.org इस विषय पर एक अच्छा संदर्भ है । Defrecord, deftype और reify जीन-क्लास और प्रॉक्सी से नए हैं, जिन्हें संस्करण 1.2 में पेश किया गया है (मुझे लगता है - संभवतः 1.1)। Defrecord और deftype दोनों कक्षाएं बनाते हैं जो इंटरफेस के अनुरूप हैं, लेकिन विरासत की अनुमति नहीं देते हैं। यदि आपको विरासत की आवश्यकता है, तो जीन-क्लास (और अनाम कक्षाओं के लिए प्रॉक्सी) अभी भी आपका एकमात्र विकल्प है।
Defrecord और deftype आपको जो कुछ भी मुफ्त में दिया गया है उससे अलग है। Defrecord स्वचालित रूप से एक वर्ग बनाता है जो IPersistentMap और ISeq के अनुरूप है। दूसरी तरफ, डेफ्टाइप, आपको अपनी कक्षा पर अधिक नियंत्रण देता है, यहां तक कि उत्परिवर्तनीय फ़ील्ड (डिफ्रेकॉर्ड में अनुमति नहीं है) की इजाजत देता है। आम तौर पर, डेफटाइप डेटा संरचनाओं के निम्न-स्तरीय कार्यान्वयन के लिए है, जबकि डिफ्रेकॉर्ड का उपयोग दिन-प्रति-दिन उपयोग के लिए किया जाता है।
स्रोत
2011-04-29 19:33:02