এটি কিছুটা পুরানো প্রশ্ন, তবে আমি ভেবেছিলাম যে আজ এই কথোপকথনে এই থ্রেডটি আসার পরে আমি আমার 2 সেন্ট অবদান রাখব।
এটি ঠিক উত্তর দেয় না কেন সেখানে কোনও কনস্টেন্ট নেই? তবে কীভাবে আপনার ক্লাসগুলি অপরিবর্তনীয় করে তোলা যায়। (দুর্ভাগ্যক্রমে আমি এখনও গ্রহণযোগ্য উত্তরের মন্তব্য হিসাবে পোস্ট করতে যথেষ্ট খ্যাতি পাইনি)
কোনও বস্তুতে অপরিবর্তনীয়তার গ্যারান্টি দেওয়ার উপায় হ'ল আপনার ক্লাসগুলি অপরিবর্তনীয় হতে আরও সাবধানে ডিজাইন করা। এর জন্য মিউটেবল ক্লাসের চেয়ে কিছুটা বেশি যত্ন নেওয়া দরকার।
এটি জোশ ব্লচের কার্যকর জাভা আইটেম 15 - পরিবর্তনকে হ্রাস করুন এ ফিরে যায় । আপনি যদি বইটি না পড়ে থাকেন তবে একটি অনুলিপি নিন এবং কয়েকবার পড়ুন আমি গ্যারান্টি দিচ্ছি এটি আপনার রূপক "জাভা গেম" উপস্থাপন করবে ।
আইটেম 15 ব্লচ পরামর্শ দেয় যে আপনি ক্লাসের পরিবর্তনকে সীমাবদ্ধ করা উচিত যাতে অবজেক্টের অবস্থা নিশ্চিত হয়।
বইটি সরাসরি উদ্ধৃত করতে:
অপরিবর্তনীয় শ্রেণি কেবল এমন একটি বর্গ যাঁর উদাহরণগুলি সংশোধন করা যায় না। প্রতিটি ইভেন্টে থাকা সমস্ত তথ্য সরবরাহ করা হয় যখন এটি তৈরি করা হয় এবং বস্তুর আজীবন স্থির করা হয়। জাভা প্ল্যাটফর্ম লাইব্রেরিতে স্ট্রিং, বক্সযুক্ত আদিম ক্লাস এবং বিগআইন্টে জীবাণু এবং বিগডিসিমাল সহ অনেকগুলি অপরিবর্তনীয় শ্রেণি রয়েছে। এর অনেকগুলি ভাল কারণ রয়েছে: অপরিবর্তনীয় ক্লাসগুলি পরিবর্তনীয় ক্লাসগুলির চেয়ে নকশা করা, প্রয়োগ করা এবং ব্যবহার করা সহজ। এগুলি ত্রুটির প্রবণতা কম এবং আরও সুরক্ষিত।
ব্লচ তারপরে 5 টি সাধারণ নিয়ম অনুসরণ করে কীভাবে আপনার ক্লাসগুলিকে অপরিবর্তনীয় করে তুলবেন তা বর্ণনা করে:
- এমন কোনও পদ্ধতি সরবরাহ করবেন না যা অবজেক্টের অবস্থা সংশোধন করবে (যেমন, সেটার, ওরফে মিউটর )
- নিশ্চিত করুন যে শ্রেণিটি বাড়ানো যাবে না (এর অর্থ শ্রেণিটি নিজেই ঘোষণা করা
final
)।
- সমস্ত ক্ষেত্র তৈরি করুন
final
।
- সমস্ত ক্ষেত্র তৈরি করুন
private
।
- কোনও পরিবর্তনীয় উপাদানগুলিতে একচেটিয়া অ্যাক্সেস নিশ্চিত করুন। (বস্তুর প্রতিরক্ষামূলক অনুলিপি তৈরি করে)
আরও তথ্যের জন্য আমি বইটির একটি অনুলিপি বাছাই করার জন্য সুপারিশ করছি।
const
কীওয়ার্ডটি কিন্তু কোন অন্তর্নিহিত বৈশিষ্ট্য। সেই অনুসারে আপনার শিরোনাম এবং ট্যাগ সংশোধন করেছেন।