HeadlinesBriefing HeadlinesBriefing.com

জাভা সিলড ক্লাস এবং এক্সহাস্টিভ প্যাটার্ন মাচিং গাইড

Hacker News •
×

জাভা ১৭ সিলড ক্লাস পরিচয় করেছে, যা ডেভেলপারদের অনুমতি দেয় যে কোনো ইন্টারফেস বা ক্লাসের অনুমোদিত উপ-ধরণের তালিকা বাস্তবায়ন করতে। এই ফিচারটি এক্সহাস্টিভ প্যাটার্ন মাচিং সক্ষম করে, যাতে কম্পাইলার সেভিচ্ছে যে সেভিশ কেসগুলি সভায় সভার করা হয়েছে switch এক্সপ্রেশনটিতে, ডিফল্ট ক্লজের প্রয়োজন নেই। উদাহরণস্বরূপ, একটি সিলড ইন্টারফেস `SealedType` কে `TypeA` এবং `TypeB` উপ-ধরণসহ ব্যবহার করা যাবে, যাতে switch এক্সপ্রেশন শুধুমাত্র এই দুই ক্ষেত্রগুলোকে হ্যান্ডল করবে, ডিফল্ট ক্লজের প্রয়োজন নেই।

তবে, এটি একটি নতুন ধরণের ব্রেকিং চেঞ্জও সৃষ্টি করে: সিলড ক্লাসে নতুন সাবটাইপ যোগ করলে যদি কোডটি রিকম্পাইল না হয় তবে গ্রাহক কোডটি ভাঙা যাবে। যদি কোনসুমার কোড রিকম্পাইল না হয়, তখন নতুন কেস সক্রিয় হলে রানটাইম এক্সেপশন (যেমন `MatchException`) ঘটতে পারে। এটি বিশেষভাবে প্রযোজ্য যখন সিলড ক্লাসগুলি পাব্লিক এপিআইে প্রকাশ করা হয়, কারণ আলাদা কম্পাইলেশন হতে পারে অপরিহার্য ব্যর্থতা দেখা যাবে।

সিলড ক্লাসটি একটি একক কম্পোনেন্টের ইম্প্লিমেন্টেশন के भीतर সবচেয়ে উপযুক্ত, যেখানে সব কোড একসাথে রিকম্পাইল করা হয়। যখন মডিউল সীমারেখায় ব্যবহার করা হয়, তবে সেগুলি রানটাইমে ডিটেক্ট হয় এমন নতুন কোড ভাঙার উপায় সৃষ্টি করতে পারে। ডেভেলপারদের উচিতভাবে সিলড ক্লাসগুলি পাব্লিক এপিআইে উপযুক্ত কি না তা ভাবতে হবে।

উৎস: Hacker News · সারাংশ: HeadlinesBriefing