এই প্রশ্নের উত্তর হ'ল সম্ভবত আশ্চর্যজনকভাবে, কখনই নয় বা আরও বাস্তবসম্মতভাবে কেবল তখনই যখন আপনি উত্তরাধিকারের কোডের সাথে আন্তঃব্যবহারের জন্য বাধ্য হন । এটি কার্যকর জাভা, জোশুয়া ব্লুচের তৃতীয় সংস্করণে সুপারিশ :
আপনার লেখা যে কোনও নতুন সিস্টেমে জাভা সিরিয়ালাইজেশন ব্যবহার করার কোনও কারণ নেই
ওরাকলের প্রধান স্থপতি মার্ক রেইনহোল্ড বলেছেন যে বর্তমান জাভা সিরিয়ালাইজেশন প্রক্রিয়াটি অপসারণ একটি দীর্ঘমেয়াদী লক্ষ্য।
জাভা সিরিয়ালাইজেশন কেন ত্রুটিযুক্ত
জাভা ভাষার একটি অংশ হিসাবে একটি সিরিয়ালাইজেশন স্কিম সরবরাহ করে যা আপনি Serializable
ইন্টারফেসটি ব্যবহার করে বেছে নিতে পারেন । এই স্কিমটিতে অবশ্য বেশ কয়েকটি অন্তরায়যোগ্য ত্রুটি রয়েছে এবং এটি জাভা ভাষার ডিজাইনারদের দ্বারা একটি ব্যর্থ পরীক্ষা হিসাবে বিবেচনা করা উচিত।
- এটা তোলে মৌলিকভাবে ভান যে এক কথা বলতে পারি একটি বস্তুর ধারাবাহিকভাবে ফর্ম। তবে অসীম অনেক সিরিয়ালাইজেশন স্কিম রয়েছে যার ফলস্বরূপ অসীম বহু সিরিয়ালাইজড ফর্ম রয়েছে। কোনও স্কিম চাপিয়ে দিয়ে, স্কিম পরিবর্তন করার কোনও উপায় ছাড়াই, অ্যাপ্লিকেশনগুলি তাদের জন্য সবচেয়ে উপযুক্ত কোনও স্কিম ব্যবহার করতে পারে না।
- এটি অবজেক্টগুলি নির্মাণের অতিরিক্ত উপায় হিসাবে প্রয়োগ করা হয়, যা কোনও পূর্বশর্তকে পাশ কাটিয়ে আপনার নির্মাণকারী বা কারখানার পদ্ধতিগুলি সম্পাদন করে। জটিল, ত্রুটিযুক্ত প্রবণতা এবং অতিরিক্ত ডিসেরায়ালাইজেশন কোড পরীক্ষা না করা যদি না লেখা থাকে তবে আপনার কোডটিতে সম্ভবত নিরাপত্তার দুর্বলতা রয়েছে।
- সিরিয়ালাইজড ফর্মের বিভিন্ন সংস্করণের ইন্টারঅ্যাপেরিবিলিটি পরীক্ষা করা খুব কঠিন।
- অপরিবর্তনীয় জিনিস হ্যান্ডলিং কষ্টকর।
পরিবর্তে কি করতে হবে
পরিবর্তে, সিরিয়ালাইজেশন স্কিম ব্যবহার করুন যা আপনি স্পষ্টভাবে নিয়ন্ত্রণ করতে পারেন। যেমন প্রোটোকল বাফারস, জেএসএন, এক্সএমএল বা আপনার নিজস্ব কাস্টম স্কিম।