2010-06-15 17 views
32

प्रोग्रामिंग भाषाओं में क्रमबद्धता अवधारणा का अर्थ क्या है?प्रोग्रामिंग भाषाओं में क्रमबद्धता अवधारणा का अर्थ क्या है?

जब हम कक्षा के ऊपर Serializable विशेषता का उपयोग करते हैं, तो इसका क्या अर्थ है?

उत्तर

74

आप दो अलग-अलग शारीरिक मशीनों पर चलने वाले दो अनुप्रयोगों कहो। दोनों अनुप्रयोगों को डेटा का आदान-प्रदान करने की आवश्यकता होती है जो आमतौर पर दोनों अनुप्रयोगों द्वारा उपयोग की जाती है। ये एप्लिकेशन कुछ माध्यमों के साथ डेटा साझा करने के लिए एक-दूसरे से बात करते हैं, ये माध्यम फाइल-सिस्टम, टीसीपी या यूडीपी कनेक्शन या किसी भी अन्य उपयुक्त नेटवर्क प्रोटोकॉल हो सकते हैं या सीधे इन-मेमोरी डेटा एक्सचेंज हो सकते हैं। इनमें से कोई भी माध्यम केवल डेटा को समझता है जिसे बिट्स की श्रृंखला के रूप में वर्णित किया गया है। इसलिए जब एक आवेदन को दूसरे को 10 मूल्य भेजने की आवश्यकता होती है, तो मूल्य 10 को उसके द्विआधारी प्रतिनिधित्व 1010 के रूप में भेजा जाएगा और आप 1010 का वर्णन करने वाली कुछ जानकारी भी पारित करेंगे। यह मेटा जानकारी बिट्स की एक श्रृंखला भी होगी जो अन्य एप्लिकेशन कर सकती है आसानी से समझते हैं। हालांकि यह आसान था।

चलिए एक और उदाहरण लेते हैं, जिसमें इन दो ऐप्स को अधिक जटिल, गैर-आदिम डेटा-प्रकार का आदान-प्रदान करने की आवश्यकता होती है। आइए कहें कि उन्हें पुस्तक प्रकार की वस्तुओं का आदान-प्रदान करने की आवश्यकता है जहां पुस्तक आपके आवेदन में एक कस्टम परिभाषित कक्षा है और दोनों अनुप्रयोगों में टाइप बुक की परिभाषा है।

public class Book 
{ 
    Book() { } 

    public long BookId { get;set; } 
    public string Author { get;set; } 
    public string Title { get;set; } 
} 

आप दो अनुप्रयोगों के बीच प्रकार की पुस्तक की वस्तुओं का आदान-प्रदान कैसे करेंगे? ऑब्जेक्ट को दो ऐप्स के बीच साझा करने में सक्षम होने के लिए, आपको पुस्तक ऑब्जेक्ट्स को बाइनरी प्रस्तुति में परिवर्तित करने में सक्षम होना होगा। यह वह जगह है जहां चित्रण क्रम में आता है।

सीरियलाइजेशन की सहायता से आप परिभाषित कर सकते हैं कि ऑब्जेक्ट को अपने द्विआधारी प्रतिनिधित्व में कैसे परिवर्तित किया जा सकता है। प्राप्त करने वाला आवेदन रिवर्स प्रक्रिया करेगा, जो डी-सीरियलाइजेशन है, जो इसकी बाइनरी प्रस्तुति से पुस्तक ऑब्जेक्ट बनाता है।

+1

आपके पूरे उत्तर के लिए बहुत बहुत धन्यवाद। –

18

विकिपीडिया से किसी की तुलना में कोई बेहतर स्पष्टीकरण नहीं है।

कंप्यूटर विज्ञान में, डेटा भंडारण और पारेषण के संदर्भ में, क्रमबद्धता बिट्स के अनुक्रम में एक डेटा संरचना या आपत्ति परिवर्तित की प्रक्रिया है ताकि यह एक फ़ाइल में संग्रहीत किया जा सकता है या मेमोरी बफर, या नेटवर्क पर प्रेषित कनेक्शन लिंक को "पुनरुत्थित" बाद में उसी या किसी अन्य कंप्यूटर वातावरण में प्रसारित किया जा सकता है।

http://en.wikipedia.org/wiki/Serialization

इसके अलावा, Serializable विशेषता तरीकों पर नहीं किया जा सकता। गुण प्रयोग

[AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Enum | AttributeTargets.Delegate, Inherited = false)] 
+5

संग्रहित किया जा सकता विकिपीडिया के स्पष्टीकरण के साथ में राज्य आपत्ति है कि, तकनीकी रूप से कहा जाये तो डेटा संरचनाओं नहीं हैं और पहले से ही बिट्स के एक दृश्य वस्तुओं में ? – davemackey

+0

ओह, आपका मतलब है, वे नहीं हैं, जब आप एक उच्च स्तरीय प्रोग्रामिंग भाषा परिप्रेक्ष्य से देख रहे हैं :-) –

8

क्रमबद्धता ने संकेत दिया बाइट्स की एक धारा में एक वस्तु परिवर्तित करने की प्रक्रिया है। Deserialization की विपरीत प्रक्रिया है जो बाइट्स की धारा से ऑब्जेक्ट बना रही है।

क्रमबद्धता/Deserialization ज्यादातर वस्तुओं बने रहने की वस्तुओं के परिवहन के लिए प्रयोग किया जाता है (उदाहरण के लिए दूरस्थ बनाने के दौरान), या (जैसे एक फ़ाइल या डेटाबेस के लिए) .Serialization को एक वस्तु का राज्य भंडारण की प्रक्रिया के रूप में परिभाषित किया जा सकता भंडारण माध्यम। इस प्रक्रिया के दौरान, कक्षा के असेंबली समेत कक्षा के नाम और कक्षा के नाम , बाइट्स की धारा में परिवर्तित हो जाते हैं, जिसे डेटा स्ट्रीम में लिखा जाता है। जब ऑब्जेक्ट को बाद में deserialized किया जाता है, तो मूल ऑब्जेक्ट का सटीक क्लोन बनाया गया है।

अधिक इस बारे में: http://www.allinterview.com/showanswers/20627.html

1

क्रमबद्धता प्रक्रिया है जिसके डेटा डेटा संरचना का अनुवाद या किसी ऐसे स्वरूप

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