যদি আমরা কেবল অধ্যবসায়ের বিষয়ে কথা বলি, 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গণনা শ্রেণীর বিবরণে অত্যন্ত সংবেদনশীল যা সংকলক বাস্তবায়নের উপর নির্ভর করে পৃথক হতে পারে এবং এর ফলে InvalidClassExceptionsdeserialization সময় অপ্রত্যাশিত হতে পারে ।