"हॅलो, अमिगो! एलीने तुम्हाला जे सांगितले त्यात मला थोडेसे जोडायचे आहे."

काहीवेळा आपल्याला सीरियलायझेशन प्रक्रिया नियंत्रित करण्याची आवश्यकता असते. येथे काही कारणे आहेत:

1) एखादी वस्तू क्रमवारीसाठी तयार नाही : तिची सध्याची अंतर्गत स्थिती बदलण्याच्या प्रक्रियेत आहे.

2) एखाद्या ऑब्जेक्टमध्ये नॉन-सिरिअलायझ करण्यायोग्य वस्तू असतात, परंतु त्यांना सहजपणे अनुक्रमित करता येईल अशा फॉर्ममध्ये रूपांतरित करू शकतात , उदा. त्यांना बाइट अॅरे किंवा इतर काहीतरी म्हणून सेव्ह करा.

३) ऑब्जेक्टला त्याचा सर्व डेटा एक युनिट म्हणून डीसीरियलाइज करायचा आहे आणि/किंवा सीरियलायझेशनपूर्वी एनक्रिप्ट करायचा आहे.

तुम्हाला मॅन्युअली सीरियलायझेशन का करायचे आहे याची अनेक कारणे आहेत. परंतु आम्ही मानक सीरिलायझेशन ऑफर करणारे सर्व फायदे गमावू इच्छित नाही. शेवटी, आमची वस्तू इतर वस्तू वापरू शकते. पण आमचा ऑब्जेक्ट सीरिअलायझेशनला सपोर्ट करत नसेल तर ते अनुक्रमित केले जाऊ शकत नाहीत.

या परिस्थितीला देखील एक उपाय आहे: बाह्य इंटरफेस. आपण जावाच्या दूरदर्शी निर्मात्यांचे आभार मानले पाहिजेत. फक्त सीरिअलायझ करण्यायोग्य इंटरफेसला एक्सटर्नलायझ करण्यायोग्य इंटरफेसने बदला आणि तुमचा वर्ग सिरियलायझेशन प्रक्रिया मॅन्युअली व्यवस्थापित करू शकतो.

एक्सटर्नलायझ करण्यायोग्य इंटरफेसमध्ये दोन पद्धती आहेत, ज्या सीरिअलायझ करण्यायोग्य इंटरफेस करत नाहीत, ज्याला जावा मशीनद्वारे कॉल केला जातो जेव्हा एखादी वस्तू अनुक्रमित केली जाते. हे असे दिसते:

कोड
class Cat implements Externalizable
{
 public String name;
 public int age;
 public int weight;

 public void writeExternal(ObjectOutput out)
 {
  out.writeObject(name);
  out.writeInt(age);
  out.writeInt(weight);
}

 public void readExternal(ObjectInput in)
 {
  name = (String) in.readObject();
  age = in.readInt();
  weight = in.readInt();
 }
}

तुम्हाला काही आठवते का?

"होली मोली! आम्ही सीरियलायझेशनचा विचार करण्यापूर्वी आम्ही वस्तू जतन करण्याचा प्रयत्न केला आहे."

"हे सर्व काही सोपे करते: जर मानक क्रमिकरण पुरेसे असेल, तर आम्ही फक्त अनुक्रमे करण्यायोग्य इंटरफेसचा वारसा घेतो . जर तो पुरेसा नसेल, तर आम्ही आमचा ऑब्जेक्ट जतन/लोड करण्यासाठी आमचा स्वतःचा कोड लिहितो."

"परंतु बाह्य चिन्हांकित केलेला वर्ग अनुक्रमे करण्यायोग्य मानला जातो का? आम्ही अशा वर्गाचा वापर आमच्या अनुक्रमिक वर्गांचे संदर्भ "सुरक्षितपणे" साठवण्यासाठी करू शकतो का?"

"होय. जर एखादा वर्ग अनुक्रमे करण्यायोग्य किंवा बाह्य करण्यायोग्य ची अंमलबजावणी करत असेल , तर तो अनुक्रमे करण्यायोग्य मानला जातो."

"हे उत्तम उपाय आहे. मला ते आवडते."

"मला ते ऐकून आनंद झाला. पण त्यात आणखी काही आहे... तुम्ही प्रोफेसर हॅन्सला सर्व बारकावे विचारले पाहिजेत. ते नक्कीच अस्तित्वात आहेत. त्यांना तुम्हाला वाचण्यासाठी काहीतरी द्यायचे होते."