2010-12-28 10 views
107
public class Contact implements Serializable { 
    private String name; 
    private String email; 

    public String getName() { 
     return name; 
    } 

    public void setName(String name) { 
     this.name = name; 
    } 

    public String getEmail() { 
     return email; 
    } 

    public void setEmail(String email) { 
     this.email = email; 
    } 
} 
  1. जब मैं Serializable इंटरफ़ेस को लागू करना चाहिए?
  2. हम ऐसा क्यों करते हैं?
  3. क्या इससे कोई लाभ या सुरक्षा मिलती है?

उत्तर

106
  1. What's this "serialization" thing all about? से:

    यह आप एक वस्तु या वस्तुओं के समूह लेते हैं, बाद में फिर एक डिस्क पर डाल या एक तार या वायरलेस परिवहन व्यवस्था के माध्यम से उन्हें भेजने की सुविधा देता , शायद किसी अन्य कंप्यूटर पर, रिवर्स प्रक्रिया: मूल ऑब्जेक्ट को पुन: जीवंत करें। बुनियादी तंत्र फ़्लैटन ऑब्जेक्ट्स को बिट्स की एक-आयामी धारा में और पर 0 बिटमूल ऑब्जेक्ट में बिट्स की स्ट्रीम को चालू करें।

    स्टार ट्रेक पर ट्रांसपोर्टर की तरह, इसके बारे में सब कुछ जटिल लेती हैं और उसे 1s और 0 के एक फ्लैट अनुक्रम में तब्दील हो, तो कि 1s और 0s (संभवतः के अनुक्रम एक अन्य जगह पर ले रहा है, संभवतः पर एक और समय) और मूल जटिल "कुछ" का पुनर्निर्माण।

    तो, Serializable इंटरफ़ेस को लागू जब तुम, वस्तु की एक प्रति की दुकान एक ही सिस्टम पर या नेटवर्क पर किसी अन्य प्रक्रिया के लिए उन्हें भेजने के लिए की जरूरत है।

  2. क्योंकि आप किसी ऑब्जेक्ट को स्टोर या भेजना चाहते हैं।

  3. यह वस्तुओं को संग्रहित और भेजना आसान बनाता है। इसका सुरक्षा से कोई लेना-देना नहीं है।

+3

क्या यह सभी डोमेन मॉडल में seriablizble इंटरफेस को लागू करने का सबसे अच्छा अभ्यास है ... – theJava

+6

@theJava यह सर्वोत्तम प्रथाओं का सवाल नहीं है। यह एक सवाल है कि आपको बाइट्स की श्रृंखला की आवश्यकता है या नहीं। – marcog

+1

JSON का उपयोग करते समय आपको इस इंटरफ़ेस को लागू करने की आवश्यकता नहीं है और केवल उस स्ट्रिंग को भेज सकते हैं .. इसलिए मुझे अभी भी यह सुनिश्चित नहीं है कि जब आप JSON का उपयोग कर सकते हैं तो इस इंटरफ़ेस का उपयोग क्यों करें। –

29
  1. Serializable इंटरफ़ेस को लागू है जब आप बाइट या जब आपको लगता है एक Serializable वस्तु अपनी कक्षा का एक उदाहरण का संदर्भ हो सकता है कि की एक श्रृंखला में एक वर्ग का एक उदाहरण बदलने में सक्षम होना चाहता हूँ।

  2. Serializable कक्षाएं तब उपयोगी होती हैं जब आप उनके उदाहरणों को जारी रखना चाहते हैं या उन्हें तार पर भेजना चाहते हैं।

  3. Serializable कक्षाओं के उदाहरण आसानी से प्रेषित किए जा सकते हैं। हालांकि, सीरियलाइजेशन में कुछ सुरक्षा परिणाम हैं। जोशुआ ब्लोच के "प्रभावी जावा" पढ़ें।

संबंधित मुद्दे