亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

通用的對(duì)象序列化的實(shí)現(xiàn)方法

文檔序號(hào):6381945閱讀:576來源:國(guó)知局
專利名稱:通用的對(duì)象序列化的實(shí)現(xiàn)方法
通用的對(duì)象序列化的實(shí)現(xiàn)方法技術(shù)領(lǐng)域
本發(fā)明屬于軟件開發(fā)和算法領(lǐng)域。
背景技術(shù)
對(duì)象序列化技術(shù),是將對(duì)象數(shù)據(jù)轉(zhuǎn)換成另一種持久化數(shù)據(jù)形式的技術(shù),轉(zhuǎn)換之后 的數(shù)據(jù)形式必須易于存儲(chǔ)在外部介質(zhì)上,或者易于使用網(wǎng)絡(luò)進(jìn)行傳輸。為了使得存儲(chǔ)和傳 輸后的數(shù)據(jù)能夠再次變回內(nèi)存中的對(duì)象,這樣的轉(zhuǎn)換必須是可逆的。對(duì)象序列化技術(shù)在數(shù) 據(jù)的傳輸和存儲(chǔ)過程中,引入了對(duì)象的抽象,使得這個(gè)過程更加直觀,使用更加方便,因此 對(duì)象序列化技術(shù)在面向?qū)ο蟮能浖到y(tǒng)中使用非常廣泛。
由于對(duì)象序列化技術(shù)使用的廣泛性,很多的計(jì)算機(jī)語(yǔ)言都在語(yǔ)言層面,通過標(biāo)準(zhǔn) 庫(kù)的方式,提供對(duì)象序列化的功能的支持,Java, C#,Python等等語(yǔ)言莫不如是。C++語(yǔ)言 本身并沒有在標(biāo)準(zhǔn)庫(kù)中提供對(duì)象序列化的功能,如果需要使用C++語(yǔ)言實(shí)現(xiàn)對(duì)象序列化, 開發(fā)者要么自己設(shè)計(jì),要么使用第三方庫(kù)。目前C++中使用比較廣泛的對(duì)象序列化庫(kù)包括 MFC, boost: : serialization 等等。
MFC庫(kù)的對(duì)象序列化功能無(wú)法脫離MFC庫(kù)單獨(dú)使用,不具有可移植性,大大限制了 它的適用范圍,而且MFC庫(kù)將對(duì)象序列化成二進(jìn)制數(shù)據(jù),不具有可讀性,也無(wú)法進(jìn)行手工編 輯。另外,MFC庫(kù)是一個(gè)相對(duì)古老的設(shè)計(jì),用戶需要定義很多宏,本身的使用不是很方便。 boost: : serialization庫(kù)參照了 MFC庫(kù)序列化功能的實(shí)現(xiàn),它同時(shí)改進(jìn)了前者的很多缺 點(diǎn)。它支持將對(duì)象序列化成字符串,寫入XML文件,這使得手工編輯變的方便。但是它不支 持對(duì)文件的加密功能。
不管是MFC庫(kù),還是boost: : serialization庫(kù),都僅僅是實(shí)現(xiàn)了對(duì)象的序列化功 能,開發(fā)人員如如要使用這些庫(kù),必須自己去設(shè)計(jì)對(duì)象具體的外部表現(xiàn)形式。本發(fā)明提供了 一個(gè)通用的對(duì)象序列化方法,并提供了支持這個(gè)方法的庫(kù)的實(shí)現(xiàn)方法,開發(fā)人員可以方便 的使用這個(gè)序列化方法和庫(kù),輕松的實(shí)現(xiàn)復(fù)雜的序列化功能。發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題是提供一種通用的對(duì)象序列化的實(shí)現(xiàn)方法,它可以使 用XML格式表示對(duì)象的序列化數(shù)據(jù),可讀性強(qiáng),方便編輯。
為了解決以上技術(shù)問題,本發(fā)明提供了一種通用的對(duì)象序列化的實(shí)現(xiàn)方法;包括 對(duì)象序列化成XML文本內(nèi)容以及序列化之后的XML文本內(nèi)容還原成對(duì)象。
本發(fā)明的有益效果在于可以使用XML格式表示對(duì)象的序列化數(shù)據(jù),可讀性強(qiáng),方 便編輯。
對(duì)象序列化成XML文本內(nèi)容包括以下步驟
將對(duì)象存放于對(duì)象倉(cāng)庫(kù)中;
調(diào)用對(duì)象,構(gòu)建對(duì)象結(jié)構(gòu)樹;
序列化管理器將前序遍歷對(duì)象結(jié)構(gòu)樹,對(duì)結(jié)構(gòu)樹的每個(gè)節(jié)點(diǎn)進(jìn)行序列化操作,生成XML格式的字符串;
將XML字符串存儲(chǔ)到XML文件中或者通過網(wǎng)絡(luò)發(fā)送。
序列化之后的XML文本內(nèi)容,還原成對(duì)象包括以下步驟
讀取XML字符串;
根據(jù)XML字符串,構(gòu)建對(duì)象結(jié)構(gòu)樹;
序列化管理器使用前序遍歷的方式遍歷對(duì)象結(jié)構(gòu)樹,根據(jù)模板對(duì)象,動(dòng)態(tài)生成對(duì)象;
序列化管理器使用后續(xù)遍歷的方式遍歷對(duì)象結(jié)構(gòu)樹,填充對(duì)象數(shù)據(jù);
序列化管理器使用后續(xù)遍歷的方式遍歷對(duì)象結(jié)構(gòu)樹,初始化對(duì)象數(shù)據(jù);
注冊(cè)動(dòng)態(tài)生成的對(duì)象到對(duì)象倉(cāng)庫(kù)。


下面結(jié)合附圖和具體實(shí)施方式
對(duì)本發(fā)明作進(jìn)一步詳細(xì)說明。
圖1描述了將C++語(yǔ)言中的對(duì)象序列化成XML文本內(nèi)容的過程;
圖2描述了序列化之后的XML文本內(nèi)容,還原成C++對(duì)象的過程。
具體實(shí)施方式
本發(fā)明解決現(xiàn)有的C++語(yǔ)言對(duì)象序列化庫(kù)只提供序列化功能,而沒有序列化方法的問題。
本發(fā)明的序列化方法使用XML標(biāo)記語(yǔ)言來作為對(duì)象的外部表示。對(duì)象的數(shù)據(jù)有屬性和關(guān)聯(lián)兩種,不管是屬性還是關(guān)聯(lián),都是對(duì)象的成員變量。對(duì)象的屬性是指類型為方法所支持基本類型(下文會(huì)詳細(xì)說明)的成員變量;對(duì)象的關(guān)聯(lián)是指類型為某個(gè)C++類的成員變量,這個(gè)C++類也必須是可序列化的。
對(duì)象的關(guān)聯(lián)又分為兩種,普通關(guān)聯(lián)和引用關(guān)聯(lián)。普通關(guān)聯(lián)指成員變量的類型為類本身,引用關(guān)聯(lián)指成員變量的類型為類指針。
序列化方法除了支持單個(gè)的屬性和關(guān)聯(lián)以外,還支持屬性列表和關(guān)聯(lián)列表,以及屬性字典和關(guān)聯(lián)字典。關(guān)聯(lián)列表和關(guān)聯(lián)字典都是關(guān)聯(lián)的容器,其中的元素既可以是普通關(guān)聯(lián),也可以是引用關(guān)聯(lián)。關(guān)聯(lián)字典的鍵值,必須是序列化方法所支持的基本類型中的一種。 下面的表格說明了序列化方法的詳細(xì)內(nèi)容
權(quán)利要求
1.一種通用的對(duì)象序列化的實(shí)現(xiàn)方法;其特征在于,包括對(duì)象序列化成XML文本內(nèi)容以及序列化之后的XML文本內(nèi)容還原成對(duì)象。
2.如權(quán)利要求1所述的通用的對(duì)象序列化的實(shí)現(xiàn)方法;其特征在于,對(duì)象序列化成XML文本內(nèi)容包括以下步驟 將對(duì)象存放于對(duì)象倉(cāng)庫(kù)中; 調(diào)用對(duì)象,構(gòu)建對(duì)象結(jié)構(gòu)樹; 序列化管理器將前序遍歷對(duì)象結(jié)構(gòu)樹,對(duì)結(jié)構(gòu)樹的每個(gè)節(jié)點(diǎn)進(jìn)行序列化操作,生成XML格式的字符串; 將XML字符串存儲(chǔ)到XML文件中或者通過網(wǎng)絡(luò)發(fā)送。
3.如權(quán)利要求1所述的通用的對(duì)象序列化的實(shí)現(xiàn)方法;其特征在于,序列化之后的XML文本內(nèi)容,還原成對(duì)象包括以下步驟 讀取XML字符串; 根據(jù)XML字符串,構(gòu)建對(duì)象結(jié)構(gòu)樹; 序列化管理器使用前序遍歷的方式遍歷對(duì)象結(jié)構(gòu)樹,根據(jù)模板對(duì)象,動(dòng)態(tài)生成對(duì)象; 序列化管理器使用后續(xù)遍歷的方式遍歷對(duì)象結(jié)構(gòu)樹,填充對(duì)象數(shù)據(jù); 序列化管理器使用后續(xù)遍歷的方式遍歷對(duì)象結(jié)構(gòu)樹,初始化對(duì)象數(shù)據(jù);注冊(cè)動(dòng)態(tài)生成的對(duì)象到對(duì)象倉(cāng)庫(kù)。
全文摘要
本發(fā)明公開了一種通用的對(duì)象序列化的實(shí)現(xiàn)方法;包括對(duì)象序列化成XML文本內(nèi)容以及序列化之后的XML文本內(nèi)容還原成對(duì)象。本發(fā)明可以使用XML格式表示對(duì)象的序列化數(shù)據(jù),可讀性強(qiáng),方便編輯。
文檔編號(hào)G06F9/44GK103019689SQ20121047591
公開日2013年4月3日 申請(qǐng)日期2012年11月21日 優(yōu)先權(quán)日2012年11月21日
發(fā)明者朱建云, 鞏榮海 申請(qǐng)人:上海富欣智能交通控制有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1