এটি তিনটি ভিন্ন কারণের মিশ্রণ:
- Jvm এর নির্দিষ্ট ধরণের সিস্টেম
- প্রকারগুলি সংজ্ঞায়িত করার সময় বিভিন্ন ব্যবহারের ক্ষেত্রে কিছুটা পৃথক শব্দার্থের প্রয়োজন
- এগুলির কয়েকটি প্রাথমিকভাবে বিকশিত হয়েছিল এবং কিছু পরে ভাষা বিকশিত হয়েছিল।
সুতরাং প্রথমে, আসুন বিবেচনা করা যাক এগুলি কী করে। Deftype এবং জেনার-ক্লাস একই হয় যে তারা উভয় সামনের সময়ের সংকলনের জন্য একটি নামক শ্রেণি সংজ্ঞায়িত করে। জেনার-ক্লাস প্রথম এসেছিল এবং ক্লোজেয়ার ১.২ এ ডিফটিপ পরে। Deftype পছন্দ করা হয়, এবং আরও ভাল পারফরম্যান্স বৈশিষ্ট্য রয়েছে, তবে এটি আরও বাধাজনক। একটি ডিফিটাইপ ক্লাস একটি ইন্টারফেসের সাথে সামঞ্জস্য করতে পারে তবে অন্য শ্রেণীর কাছ থেকে উত্তরাধিকারী হতে পারে না।
রেফাইফ এবং প্রক্সি উভয়ই রানটাইমে বেনামে বেনাম শ্রেণীর উদাহরণ তৈরি করতে ব্যবহৃত হয়। প্রক্সি প্রথমে এসেছিল, ক্লোজার ১.২ এ রেফাইটি ডিফটিপ এবং ডিফ্রাইকার্ড সহ এসেছিল। রেফাইটিকে পছন্দ করা হয়, যেমন ডিফ্টাইপ হয়, যেখানে শব্দার্থিকগুলি খুব বেশি বাধা দেয় না।
এটি একই সাথে উপস্থিত হওয়ার কারণে এবং একই রকম ভূমিকা রাখার কারণে কেন ডিফল্ট এবং ডিফ্র্যাকর্ড উভয়ই এই প্রশ্নটি ছেড়ে দেয়। বেশিরভাগ উদ্দেশ্যে, আমরা ডিফ্রেকার্ডটি ব্যবহার করতে চাই: এটির কাছে আমাদের জানার এবং ভালবাসা, সিক্যুয়ালিটি এবং আরও অনেকগুলি ক্লোজার নেকি রয়েছে। Deftype অন্যান্য ডেটাস্ট্রাকচার বাস্তবায়নের জন্য নিম্ন স্তরের বিল্ডিং ব্লক হিসাবে ব্যবহারের উদ্দেশ্যে তৈরি। এটিতে নিয়মিত ক্লোজার ইন্টারফেস অন্তর্ভুক্ত করা হয় না তবে এতে পার্শ্ববর্তী ক্ষেত্রগুলির বিকল্প রয়েছে (যদিও এটি ডিফল্ট নয়)।
আরও পড়ার জন্য চেক আউট:
Clojure.org ডেটাটাইপস পৃষ্ঠা
গুগল গ্রুপ থ্রেড যেখানে ডিফটাইপ এবং রিফাইটি চালু হয়েছিল