যদি আমরা কেবল অধ্যবসায়ের বিষয়ে কথা বলি, Serializable
প্রয়োজন হয় না তবে সত্তা তৈরি করা ভাল অনুশীলন Serializable
।
যদি আমরা ব্যবহারের পরিবর্তে উপস্থাপনা স্তরটিতে সরাসরি অবজেক্ট domain
/ entities
অবজেক্ট প্রকাশ করি DTO
তবে সে ক্ষেত্রে আমাদের প্রয়োগ করতে হবে Serializable
। এই ডোমেন অবজেক্টগুলি HTTPSession
ক্যাচিং / অপ্টিমাইজেশান উদ্দেশ্যে সংরক্ষণ করা যেতে পারে । একটি HTTP- সেশন ক্রমিক বা ক্লাস্টার করা যেতে পারে। এবং এটি JVM
উপাদানগুলির মধ্যে ডেটা স্থানান্তর করার জন্যও প্রয়োজনীয় ।
আমরা যখন DTO
অধ্যবসায় স্তর এবং পরিষেবা স্তরটিকে ডিকুয়াল করার জন্য ব্যবহার করি তখন ডোমেন অবজেক্টগুলিকে চিহ্ন হিসাবে Serializable
উত্পাদনশীল হবে এবং " encapsulation
" লঙ্ঘন করবে । তারপরে এটি অ্যান্টি-প্যাটার্নে পরিণত হয়।
সম্মিলিত শনাক্তকারী
প্রাথমিক কী শ্রেণি অবশ্যই সিরিয়ালযোগ্য হবে।
POJO মডেল
যদি কোনও সত্তার উদাহরণটি দূরবর্তীভাবে কোনও পৃথক বস্তু হিসাবে ব্যবহার করতে হয়, সত্তা শ্রেণিটি অবশ্যই Serializable
ইন্টারফেসটি প্রয়োগ করবে implement
ক্যাশে
এছাড়াও, আপনি যদি clustered
দ্বিতীয় স্তরের প্রয়োগ করছেন cache
তবে আপনার সত্তা অবশ্যই হবে serializable
। সনাক্তকারীটি Serializable
হ'ল কারণ এটি একটি জেপিএ প্রয়োজনীয়তা, যেহেতু identifier
সম্ভবত দ্বিতীয় স্তরের ক্যাশে প্রবেশের জন্য কী হিসাবে ব্যবহৃত হতে পারে।
এবং যখন আমরা সত্তাগুলি সিরিয়াল করি তখন serialVersionUID
ব্যক্তিগত অ্যাক্সেস মডিফায়ারের সাথে সুস্পষ্ট সরবরাহ নিশ্চিত করে নিন make কারণ যদি কোনও serializable
শ্রেণি স্পষ্টভাবে একটি ঘোষণা করে না serialVersionUID
, তবে সিরিয়ালাইজেশন রানটাইম serialVersionUID
জাভা (টিএম) অবজেক্ট সিরিয়ালাইজেশন স্পেসিফিকেশনে বর্ণিত শ্রেণীর বিভিন্ন দিকের ভিত্তিতে সেই শ্রেণীর জন্য একটি ডিফল্ট মান গণনা করবে । ডিফল্ট serialVersionUID
গণনা শ্রেণীর বিবরণে অত্যন্ত সংবেদনশীল যা সংকলক বাস্তবায়নের উপর নির্ভর করে পৃথক হতে পারে এবং এর ফলে InvalidClassExceptions
deserialization সময় অপ্রত্যাশিত হতে পারে ।