專利名稱:共享對象屬性的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種共享屬性的方法,特別是一種通過抽取對象的屬性,建立對象的屬性庫,使執(zhí)行程序運(yùn)行時(shí)能夠通過訪問屬性庫來共享對象的屬性的方法。
背景技術(shù):
現(xiàn)有技術(shù)中,按照面向?qū)ο蟮乃枷?,根?jù)對象的封裝性,對象的屬性一般是存儲為對象內(nèi)部的域(Field),在應(yīng)用中,由對象本身提供用于其自身屬性的讀寫方法,這樣的域(Field)稱為“屬性域”。
例如,一個(gè)“邊框”對象,具有邊框類型屬性和邊框?qū)挾葘傩?。邊框的線型通常為整型值,1表示該邊框是直線型,2表示該邊框是虛線型,而邊框的寬度也為整型值,其單位為象素。按照一般的面向?qū)ο蟮姆绞?,把這兩個(gè)屬性定義為邊框?qū)ο蟮摹皩傩杂颉保绫硪凰?
表一表一中,borderStyle為邊框的類型屬性;borderWith為邊框的寬度屬性。在一個(gè)邊框?qū)ο笾校辽傩枰O(shè)置這兩個(gè)屬性域,而在程序運(yùn)行時(shí),對象本身能夠提供方法對這兩個(gè)“屬性域”進(jìn)行讀寫。
然而,在規(guī)模較大的程序中,對象定義一般比較復(fù)雜,屬性域一般較多;而在程序運(yùn)行期間,通常對象數(shù)量眾多,每個(gè)對象擁有大量的屬性域,這導(dǎo)致了屬性域耗用很大的內(nèi)存,降低了程序的運(yùn)行效率。
發(fā)明內(nèi)容
本發(fā)明的目的在于針對上述現(xiàn)有技術(shù)中存在的屬性域耗用內(nèi)存大、程序運(yùn)行效率低的缺陷,提出一種基于屬性對象的共享屬性的方法,該方法包括基于屬性對象建立屬性庫的方法和基于屬性庫查找對象屬性數(shù)據(jù)的方法。共享屬性的方法能夠把這些屬性域抽取出來,并實(shí)現(xiàn)共享,降低程序運(yùn)行期間耗用的內(nèi)存,從而提高程序的運(yùn)行效率。
為實(shí)現(xiàn)上述目的,本發(fā)明所提供的一種基于屬性對象建立屬性庫的方法,包括以下步驟步驟11、屬性對象創(chuàng)建進(jìn)程分別抽取對象的屬性,將每個(gè)屬性名與該屬性名所對應(yīng)的數(shù)值以數(shù)對的形式進(jìn)行關(guān)聯(lián),形成屬性對象;步驟12、所述屬性對象創(chuàng)建進(jìn)程調(diào)用屬性對象存儲進(jìn)程,將所有的屬性對象寫入數(shù)據(jù)庫中,并為所述屬性對象創(chuàng)建索引,完成屬性庫的建立。
本發(fā)明所提供的一種基于屬性庫查找對象屬性數(shù)據(jù)的方法,包括以下步驟步驟21、獲取對象的屬性名;步驟22、訪問所述屬性庫,并根據(jù)所述屬性名查找與該屬性名對應(yīng)的所述屬性對象;步驟23、從所述屬性對象中獲取所述對象的屬性數(shù)據(jù);步驟24、結(jié)束。
本發(fā)明通過將對象的屬性抽取出來,并為每個(gè)屬性名和該屬性名對應(yīng)的數(shù)值之間建立數(shù)值對,封裝后建立屬性庫,實(shí)現(xiàn)了屬性對象和對象本身的分離,消除了傳統(tǒng)技術(shù)中需要設(shè)置大量的屬性域,從而消耗大量內(nèi)存的弊端。在程序運(yùn)行期間,如果多個(gè)對象具有相同的屬性,則這些對象可以使用相同的屬性對象,從而實(shí)現(xiàn)屬性的共享,節(jié)省內(nèi)存耗用。
下面通過附圖和實(shí)施例,對本發(fā)明的技術(shù)方案做進(jìn)一步的詳細(xì)描述。
圖1為本發(fā)明建立屬性庫方法的一個(gè)實(shí)施例的流程圖;圖2為本發(fā)明查找對象屬性數(shù)據(jù)的方法的一個(gè)具體實(shí)施例的流程圖;圖3為本發(fā)明查找對象屬性數(shù)據(jù)的方法的另一個(gè)具體實(shí)施例的流程圖;圖4為本發(fā)明查找對象屬性數(shù)據(jù)的方法的再一個(gè)具體實(shí)施例的流程圖。
具體實(shí)施例方式
圖1所示為建立屬性庫的一個(gè)具體實(shí)施例的流程圖,該具體實(shí)施例通過以下步驟實(shí)現(xiàn)屬性庫的建立步驟101、屬性對象創(chuàng)建進(jìn)程分別抽取對象的屬性,獲得屬性名以及該屬性的數(shù)值。
步驟102、將每個(gè)屬性名與該屬性名所對應(yīng)的數(shù)值以數(shù)對的形式進(jìn)行關(guān)聯(lián),形成屬性對象。
步驟103、屬性對象創(chuàng)建進(jìn)程調(diào)用屬性對象存儲進(jìn)程,將所有的屬性對象寫入數(shù)據(jù)庫中。
步驟104、為屬性對象創(chuàng)建索引。
步驟125、完成屬性庫的建立。
在上述實(shí)施例中,由于對象的完整屬性由多個(gè)方面的數(shù)據(jù)組成,因此,對于每個(gè)方面的數(shù)據(jù),可以用一個(gè)ID-Value對,即“鍵,值”對的形式形成所述數(shù)對,一個(gè)“鍵,值”數(shù)對描述所述屬性的一個(gè)組成信息,鍵為所述屬性名,值為該屬性名所對應(yīng)的數(shù)值,如表二所示。
表二圖13表示基準(zhǔn)電流值A(chǔ)設(shè)定流程圖。
在步驟S21,在環(huán)境變動時(shí),或?qū)嵭羞^程控制前等場合,通過設(shè)置在充電輥3a附近的作為環(huán)境檢測手段105的溫濕度計(jì),檢測充電輥3a附近的溫度與濕度。
在步驟S22,根據(jù)上述檢測出的充電輥3a附近的絕對濕度[g/cm3],設(shè)定基準(zhǔn)電流A。具體地說,在存儲手段102中,預(yù)先存儲如表2所示的各環(huán)境的基準(zhǔn)電流表,調(diào)取與檢測出的絕對濕度對應(yīng)的基準(zhǔn)電流值A(chǔ)。
表2
在步驟S23,從存儲手段102中,讀出與所述基準(zhǔn)電流值A(chǔ)對應(yīng)的第一檢測電壓Vpp1與第二檢測電壓Vpp2,進(jìn)行設(shè)定。
在步驟S24,進(jìn)行與上述圖11所述的步驟相同的控制,進(jìn)行AC電壓(基準(zhǔn)電壓Vpp_aim)的設(shè)定。
這樣,根據(jù)環(huán)境變動,變更基準(zhǔn)電流值A(chǔ),能夠正確地求得與基準(zhǔn)電壓設(shè)定時(shí)的環(huán)境對應(yīng)的交流電壓值(基準(zhǔn)電壓Vpp_aim)。因此,若對充電輥施加該基準(zhǔn)電壓值Vpp_aim,即使在低溫低濕的環(huán)境(LL)下,也能夠得到所定的放電量,使得感光體1均一帶電。
若充電輥3a的電阻值發(fā)生變動,則不僅二倍的Vth以及二倍Vth以上的AC電壓與AC電流的關(guān)系(傾斜度)發(fā)生變動,而且Ivth也發(fā)生變動。充電輥3a的電阻值各不相同,使用相同的基準(zhǔn)交流電流值A(chǔ)場合,會得不到所定的放電量,導(dǎo)致感光體1不能夠均一帶電,或放電量超過必要的量,導(dǎo)致感光體1早期劣化。
為此,在本實(shí)施例中,能夠?qū)Ω鞒潆娸佔(zhàn)兏鶞?zhǔn)交流電流值A(chǔ)。具體地說,例如,可以在圖像形成組件2的框體上設(shè)置ID芯片,將與該圖像形成組件內(nèi)的<p>步驟202、訪問所述屬性庫,并根據(jù)屬性名查找與該屬性名對應(yīng)的所述屬性對象。
步驟203、從所述屬性對象中獲取所述對象的屬性數(shù)據(jù)。
步驟204、完成查找對象屬性。
本發(fā)明所建立的屬性對象庫可以是一個(gè)二維數(shù)組表。二維數(shù)組表中,每行表示一個(gè)屬性分類(用屬性分類常量定義),該行用于存放此類屬性對象,這樣,屬性由分類常量和列索引唯一確定,從而實(shí)現(xiàn)屬性對象的共享。
圖3所示為本發(fā)明查找對象屬性數(shù)據(jù)的方法的另一個(gè)具體實(shí)施例的流程圖,該實(shí)施例具體執(zhí)行以下步驟步驟301、獲取對象的屬性名。根據(jù)程序運(yùn)行需要執(zhí)行的對象操作,得到與該對象相關(guān)的屬性名。
步驟302、根據(jù)屬性名對應(yīng)的屬性對象的索引訪問屬性庫中的表,該表為一個(gè)二維表,該二維表存儲的是每一個(gè)屬性對象對應(yīng)的一個(gè)或多個(gè)數(shù)對,數(shù)對在二維表中的位置是所述屬性對象的索引,判斷表中是否有所述索引對應(yīng)的屬性對象,如果有,則執(zhí)行步驟303;否則執(zhí)行步驟304。
步驟303、判斷所述屬性對象中是否存在所述屬性名,如果是,則返回所述屬性名對應(yīng)的數(shù)對;否則執(zhí)行步驟304。
步驟304、返回系統(tǒng)或程序預(yù)先約定的數(shù)值。
該方法實(shí)現(xiàn)了屬性對象和對象相分離,程序運(yùn)行期間,如果多個(gè)對象具有相同的屬性,則這些對象可以使用相同的屬性對象,從而實(shí)現(xiàn)屬性的共享,節(jié)省內(nèi)存耗用。
上述實(shí)施例中,對所述屬性庫的訪問具體執(zhí)行對一個(gè)二維表的訪問,該二維表存儲的是每一個(gè)屬性對象對應(yīng)的一個(gè)或多個(gè)數(shù)對,所述數(shù)對在二維表中的位置是所述屬性對象的索引。
圖4所示為本發(fā)明查找對象屬性數(shù)據(jù)的方法的再一個(gè)具體實(shí)施例的流程圖,該實(shí)施例具體執(zhí)行以下步驟
步驟401、獲取對象的屬性名。根據(jù)程序運(yùn)行需要執(zhí)行的對象操作,得到與該對象相關(guān)的屬性名。
步驟402、根據(jù)屬性名對應(yīng)的屬性對象所屬的類訪問所述屬性庫中的類表,判斷所述屬性庫中是否存在該類對應(yīng)的類屬性表,如果是,則執(zhí)行步驟403;否則執(zhí)行步驟405;步驟403、根據(jù)所述屬性名對應(yīng)的屬性對象的索引訪問所述類屬性表,判斷類屬性表中是否有所述索引對應(yīng)的屬性對象,如果有,則執(zhí)行步驟404;否則執(zhí)行步驟405;步驟404判斷所述屬性對象中是否存在所述屬性名,如果是,則返回所述屬性名對應(yīng)的數(shù)對;否則執(zhí)行步驟405;步驟405、返回約定值,例如INVALID_VALUE。
在該方法中,屬性對象庫通過一個(gè)唯一的索引標(biāo)識庫中的屬性對象,此索引是對象和屬性對象之間的橋梁,通過在對象中保存一個(gè)屬性索引,使得對象和屬性對象建立聯(lián)系,對象憑借索引可設(shè)置和訪問屬性對象。
判斷二維表中是否已經(jīng)存有數(shù)對,如果是,則返回屬性對象的索引,將該索引封裝到對象中,這樣,對于多個(gè)具有相同屬性的對象,屬性對象庫將分配相同的索引給他們,使得這些對象共同使用同一個(gè)屬性對象。這樣就實(shí)現(xiàn)了屬性對象的共享。
最后所應(yīng)說明的是,以上實(shí)施例僅用以說明本發(fā)明的技術(shù)方案而非限制,盡管參照較佳實(shí)施例對本發(fā)明進(jìn)行了詳細(xì)說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解,可以對本發(fā)明的技術(shù)方案進(jìn)行修改或者等同替換,而不脫離本發(fā)明技術(shù)方案的精神和范圍。
權(quán)利要求
1.一種基于屬性對象建立屬性庫的方法,其中,包括以下步驟步驟11、屬性對象創(chuàng)建進(jìn)程分別抽取對象的屬性,將每個(gè)屬性名與該屬性名所對應(yīng)的數(shù)值以數(shù)對的形式進(jìn)行關(guān)聯(lián),形成屬性對象;步驟12、所述屬性對象創(chuàng)建進(jìn)程調(diào)用屬性對象存儲進(jìn)程,將所有的屬性對象寫入數(shù)據(jù)庫中,并為所述屬性對象創(chuàng)建索引,完成屬性庫的建立。
2.根據(jù)權(quán)利要求1所述的方法,其中,所述步驟11中,以數(shù)對的形式對所述屬性名及該屬性名所對應(yīng)的數(shù)值進(jìn)行關(guān)聯(lián)時(shí),采用“鍵,值”對的形式形成所述數(shù)對,一個(gè)“鍵,值”數(shù)對描述所述屬性的一個(gè)組成信息,鍵為所述屬性名,值為該屬性名所對應(yīng)的數(shù)值。
3.根據(jù)權(quán)利要求1所述的方法,其中,所述步驟12中,所述屬性對象存儲進(jìn)程將所有的屬性對象寫入數(shù)據(jù)庫的具體操作為步驟121、對所有的屬性對象進(jìn)行分類;步驟122、將屬于同一類型的屬性對象存放在所述數(shù)據(jù)庫中的同一張表中,所述表的表名為屬性對象的分類常量。
4.根據(jù)權(quán)利要求1、2或3所述的方法,其中,所述步驟12之后還設(shè)有所述屬性對象創(chuàng)建進(jìn)程將所述索引封裝在所述屬性庫中的步驟。
5.一種基于屬性庫查找對象屬性數(shù)據(jù)的方法,其中,包括以下步驟步驟21、獲取對象的屬性名;步驟22、訪問所述屬性庫,并根據(jù)所述屬性名查找與該屬性名對應(yīng)的所述屬性對象;步驟23、從所述屬性對象中獲取所述對象的屬性數(shù)據(jù);步驟24、結(jié)束。
6.根據(jù)權(quán)利要求5所述的方法,其中,所述步驟22具體為;步驟221、根據(jù)所述屬性名所對應(yīng)的屬性對象的索引,訪問所述屬性庫中的表,判斷所述表中是否有所述索引對應(yīng)的屬性對象,如果有,則執(zhí)行步驟222;否則執(zhí)行步驟223;步驟222、判斷所述屬性對象中是否存在所述屬性名,如果是,則返回所述屬性名對應(yīng)的數(shù)對;否則執(zhí)行步驟223;步驟223、返回一約先設(shè)定的數(shù)值。
7.根據(jù)權(quán)利要求6所述的方法,其中,所述步驟221中對所述屬性庫的訪問具體執(zhí)行對一個(gè)二維表的訪問,該二維表存儲的是每一個(gè)屬性對象對應(yīng)的一個(gè)或多個(gè)數(shù)對,所述數(shù)對在二維表中的位置是所述屬性對象的索引。
8.根據(jù)權(quán)利要求5所述的方法,其中,所述步驟22具體為步驟221’、根據(jù)一個(gè)屬性名對應(yīng)的屬性對象所屬的類訪問所述屬性庫,判斷所述屬性庫中是否存在該類對應(yīng)的類屬性表,如果是,則執(zhí)行步驟222’;否則執(zhí)行步驟224’;步驟222’、根據(jù)所述屬性名對應(yīng)的屬性對象的索引訪問所述類屬性表,判斷所述類屬性表中是否有所述索引對應(yīng)的屬性對象,如果有,則執(zhí)行步驟223’;否則執(zhí)行步驟224’;步驟223’、判斷所述屬性對象中是否存在所述屬性名,如果是,則返回所述屬性名對應(yīng)的數(shù)對;否則執(zhí)行步驟224’;步驟224’、返回一約先設(shè)定的數(shù)值。
9.根據(jù)權(quán)利要求8所述的方法,其中,步驟221’中,訪問所述屬性庫的具體過程是對類表及類屬性表這兩個(gè)二維表的訪問,所述類表中存儲的是屬性對象對應(yīng)的類及所述類對應(yīng)的類屬性表的索引,所述類屬性表中存儲的是每一個(gè)屬于該類的屬性對象所對應(yīng)的一個(gè)或多個(gè)數(shù)對,所述數(shù)對在所述類屬性表中的位置是所述屬性對象的索引。
全文摘要
本發(fā)明涉及一種屬性共享的方法,包括建立屬性庫的方法和查找對象屬性數(shù)據(jù)的方法,建立屬性庫的方法包括抽取對象的屬性,將屬性名與所對應(yīng)的數(shù)值關(guān)聯(lián),形成屬性對象;將所有的屬性對象寫入數(shù)據(jù)庫中,并為屬性對象創(chuàng)建索引的步驟;查找對象屬性數(shù)據(jù)的方法包括獲取對象的屬性名;訪問屬性庫,查找對應(yīng)的屬性對象;獲取對象的屬性數(shù)據(jù)的步驟。本發(fā)明實(shí)現(xiàn)了屬性對象和對象相分離,程序運(yùn)行期間,如果多個(gè)對象具有相同的屬性,則這些對象可以使用相同的屬性對象,從而實(shí)現(xiàn)屬性的共享,節(jié)省內(nèi)存耗用。
文檔編號G06F17/30GK1862542SQ20061008359
公開日2006年11月15日 申請日期2006年6月9日 優(yōu)先權(quán)日2006年6月9日
發(fā)明者江寶歆 申請人:無錫永中科技有限公司