"ஹலோ, அமிகோ! எல்லி சொன்னதைக் கொஞ்சம் சேர்க்க விரும்புகிறேன்."

சில நேரங்களில் நீங்கள் வரிசைப்படுத்தல் செயல்முறையை கட்டுப்படுத்த வேண்டும். அதற்கான சில காரணங்கள் இங்கே:

1) ஒரு பொருள் வரிசைப்படுத்தலுக்குத் தயாராக இல்லை : அதன் தற்போதைய உள் நிலை மாறும் செயல்பாட்டில் உள்ளது.

2) ஒரு பொருளில் வரிசைப்படுத்த முடியாத பொருள்கள் உள்ளன, ஆனால் அவற்றை எளிதாக வரிசைப்படுத்தக்கூடிய வடிவமாக மாற்றலாம் , எ.கா. பைட் வரிசையாக அல்லது வேறு ஏதாவது சேமிக்கலாம்.

3) ஒரு பொருள் அதன் எல்லா தரவையும் ஒரு யூனிட்டாக சீரமைக்க விரும்புகிறது மற்றும்/அல்லது வரிசையாக்கத்திற்கு முன் அதை என்க்ரிப்ட் செய்ய விரும்புகிறது.

நீங்கள் வரிசைப்படுத்தலை கைமுறையாக செய்ய விரும்புவதற்கு பல காரணங்கள் உள்ளன. ஆனால் நிலையான சீரியலைசேஷன் வழங்கும் அனைத்து நன்மைகளையும் நாங்கள் இழக்க விரும்பவில்லை. எல்லாவற்றிற்கும் மேலாக, எங்கள் பொருள் மற்ற பொருட்களைப் பயன்படுத்தலாம். ஆனால் நம் பொருள் சீரியலை ஆதரிக்கவில்லை என்றால் அவை தொடர முடியாது.

இந்த சூழ்நிலைக்கு ஒரு தீர்வும் உள்ளது: வெளிப்புறமாக்கக்கூடிய இடைமுகம். ஜாவாவின் தொலைநோக்கு படைப்பாளிகளுக்கு நாம் நன்றி சொல்ல வேண்டும். வரிசைப்படுத்தக்கூடிய இடைமுகத்தை வெளிப்புறமாக்கக்கூடிய இடைமுகத்துடன் மாற்றவும் , மேலும் உங்கள் வகுப்பு வரிசைப்படுத்தல் செயல்முறையை கைமுறையாக நிர்வகிக்க முடியும்.

Externalizable interface ஆனது Serializable interface இல் இல்லாத இரண்டு முறைகளைக் கொண்டுள்ளது, அவை ஒரு பொருள் வரிசைப்படுத்தப்படும் போது Java இயந்திரத்தால் அழைக்கப்படுகிறது. இது எப்படி இருக்கிறது:

குறியீடு
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();
 }
}

உங்களுக்கு ஏதாவது நினைவூட்டுகிறதா?

"ஹோலி மோலி! நாங்கள் சீரியலைசேஷன் என்று கருதுவதற்கு முன்பு பொருட்களைச் சேமிக்க இப்படித்தான் முயற்சித்தோம்."

"இது எல்லாவற்றையும் எளிதாக்குகிறது: நிலையான வரிசைப்படுத்தல் போதுமானதாக இருந்தால், நாம் சீரியலைசபிள் இடைமுகத்தை மட்டுமே பெறுகிறோம். அது போதுமானதாக இல்லாவிட்டால், நாங்கள் Externalizable ஐப் பெறுகிறோம் , மேலும் எங்கள் பொருளைச் சேமிக்க/ஏற்ற எங்கள் சொந்த குறியீட்டை எழுதுகிறோம்."

"ஆனால் Externalizable எனக் குறிக்கப்பட்ட ஒரு வகுப்பு வரிசைப்படுத்தக்கூடியதாகக் கருதப்படுகிறதா? நமது வரிசைப்படுத்தக்கூடிய வகுப்புகளுக்கான குறிப்புகளை "பாதுகாப்பாக" சேமிக்க, அத்தகைய வகுப்பைப் பயன்படுத்தலாமா?"

"ஆம். ஒரு வகுப்பு சீரியலைசபிள் அல்லது எக்ஸ்டெர்னலைசபிள் ஐ செயல்படுத்தினால் , அது தொடராகக் கருதப்படுகிறது."

"இது சரியான தீர்வு. எனக்கு அது பிடிக்கும்."

"அதைக் கேட்பதில் நான் மகிழ்ச்சியடைகிறேன். ஆனால் அதில் இன்னும் நிறைய இருக்கிறது... எல்லா நுணுக்கங்களையும் பற்றி பேராசிரியர் ஹான்ஸிடம் நீங்கள் கேட்க வேண்டும். அவை நிச்சயமாக உள்ளன. அவர் உங்களுக்கு படிக்க ஏதாவது கொடுக்க விரும்பினார்."