用於構建對象和實體的呈現的方法和裝置的製作方法
2023-05-28 12:04:36 1
專利名稱:用於構建對象和實體的呈現的方法和裝置的製作方法
技術領域:
本發明涉及面向對象編程,尤其涉及用於構建對象呈現的方法和裝置。
背景技術:
面向對象的程式語言由編程人員在應用程式範圍內廣泛使用。在面向對象的程式語言中,對象具有眾多屬性或屬性欄位。某些對象趨向於具有大量的這些屬性。對象的部分屬性可具有其本身也是對象的類型。因此,通過對另一對象的引用點,這些屬性指向更多的屬性。
當建立用戶界面(UI)時,諸如窗體、表格、電子表格、或基於對象機器引用的屬性的其它可視呈現,不得不指定要包括在呈現中的每個單獨屬性是相當麻煩的。如果被請求屬性在引用對象上則尤甚。如果對象是從另一對象導出的,則問題變得更為複雜。
對於一典型的應用程式或系統,需要為大量不同對象和/或要可視呈現的屬性組合產生數百(如果不是數千)不同的UI(例如窗體)或其它呈現是尋常的。因而產生大量可視呈現會是一個勞動強度很大的過程。此外,這些呈現的更改也很麻煩。如果需要更改現有的呈現,例如反映添加到對象的附加屬性,必須重複首次創建它們時投入的許多精力。結果,對於終端用戶編程和安裝的系統,終端用戶常常很難在後來需要時定製UI、窗體、或其它呈現。
發明內容
構建具有至少一個屬性的對象呈現的方法包括標識與該對象相關聯的被選定呈現該對象的至少一個屬性組。對象的至少一個屬性屬於被呈現為與對象相關聯的每個屬性組。換言之,與對象相關聯的屬性組可描述為被分配給對象屬性的至少之一。該方法還包括標識對象在被標識屬性組的屬性中引用的任何其它對象。對象呈現引擎檢索與屬於至少一個屬性組的每個屬性相對應的數據。然後引擎使用檢索到的數據來呈現對象。呈現對象的步驟常包括通過顯示檢索到的數據來可視化地呈現對象。
在某些實施例中,顯示檢索到的數據還包括顯示與這些屬性的值相鄰的至少一屬性組中的屬性名字。每個屬性組的名字可顯示為與該屬性組中的屬性名字相鄰,並與那些屬性的值相鄰。
在本發明某些實施例中,在對象和其它對象之間存在至少一個對象繼承分層結構。每個屬性組對一特定對象繼承分層結構而言是唯一的。在某些實施例中,對象是第二對象的特定化。則該對象可繼承與第二對象相關聯的屬性組。
在某些實施例中,每個屬性組被分配給對象屬性的至少之一,並分配給唯一其它對象的一個或多個屬性。檢索與每個分配給屬性組的屬性相對應的數據的步驟,還可包括檢索與第一對象的屬性相對應的以及與屬性組相關聯的唯一其它對象的屬性相對應的數據。
在某些實施例中,標識與對象相關聯的至少一個屬性組的步驟還包括標識與對象相關聯的預設屬性組。
參閱以下詳細說明書和附圖,表徵本發明各實施例的其它特徵和優點將變得顯然。
圖1是本發明可在其中實現的一示例性環境的框圖。
圖2是本發明可在其中實現的一般移動計算環境的框圖。
圖3是根據本發明各實施例示出對象呈現系統的框圖。
圖4是示出分層結構關係的對象,並示出本發明屬性組概念的框圖。
圖5是示出與圖4所示對象具有關聯關係,並與該對象共享一屬性組的對象的框圖。
圖6是由對象指定並使用本發明的屬性組概念創建的用戶界面(UI)的圖示說明。
圖7是由對象指定並使用本發明的屬性組概念創建的第二用戶界面(UI)的圖示說明。
圖8是示出根據本發明方法的流程圖。
圖9是示出根據本發明另一方法的流程圖。
具體實施例方式
如上所述,在面向對象編程中,對象和實體包含屬性,並通過分層結構和其它關係指向其它對象的屬性。實體可被描述為可持續對象。換言之,實體是可存儲在資料庫中的對象。當在此使用時,術語「對象」旨在包括「實體」。面向對象編程的一般概念,例如繼承、關聯、以及合成的概念,在本領域中是眾所周知的。例如,參見K.Scott和M.Flower的「UML提取標準對象建模語言的簡要指南」(Addison-Wesley 1999)。
本發明部分地基於一種認識,即使用關聯或繼承相連的對象屬性使得用戶界面(UI)、窗體、或其它對象呈現能更簡便地得以指定。利用屬性分組的本發明的方法和裝置,在按照繼承、定製和關聯當對象較為複雜時便於UI和其它呈現的快速構建。在現有技術中,每當對象被擴展時,不得不重新訪問每個UI、窗體、網頁或其它來自對象的數據呈現是普遍的。使用本發明的方法和裝置,可無需更新這些UI、窗體、網頁或對象的其它呈現的大勞動強度任務而擴展對象。
圖1示出本發明可在其上實現的適當計算系統環境100的示例。該計算系統環境100僅是適當計算環境的一個示例,並非旨在提出對本發明使用或功能性範圍作任何限制。計算環境100也不應被解釋為對示例性操作環境100中所示的任一組件或其組合有任何依賴性或任何需求。
本發明也可在很多其它通用或專用計算系統環境或配置中操作。適於本發明使用的眾所周知的計算系統、環境、和/或配置的示例包括,但不限於,個人計算機、伺服器計算機、手持式或膝上型裝置、多處理器系統、基於微處理器的系統、機頂盒、可編程消費電器、網絡PC、小型計算機、大型機、包括任一種以上系統或設備的分布式計算環境等等。
本發明可在計算機可執行指令的一般環境中進行說明,諸如由計算機執行的程序模塊。一般而言,程序模塊包括執行具體任務或實現具體抽象數據類型的例程、程序、對象、組件、數據結構等等。本發明還可在任務由經通信網絡或其它數據傳輸介質連接的遠程處理裝置執行的分布式計算環境中實踐。在分布式計算環境中,程序模塊和其它數據可置於包括存儲器存儲設備的本地和遠程計算機存儲介質中。
參照圖1,實現本發明的示例性系統包括以計算機110形式的通用計算裝置。計算機110的組件可包括,但不限於,處理單元120、系統存儲器130以及把包括系統存儲器在內的各種系統組件耦合到處理單元120的系統總線121。系統總線121可能是若干總線結構類型中的任何一種,包括存儲器總線或存儲器控制器、外圍總線、以及使用多種總線架構的任一種的本地總線。作為示例,而非限制,這些架構包括工業標準架構(ISA)總線、微信道架構(MCA)總線、增強型ISA(EISA)總線、視頻電子標準協會(VESA)局部總線和也稱為Mezzanine總線的外圍部件互連(PCI)總線。
計算機110通常包括各種計算機可讀介質。計算機可讀介質可以是能被計算機110訪問的任何可用介質,並包括易失性和非易失性介質、可移動和不可移動介質。作為示例,而非限制,計算機可讀介質可包括計算機存儲介質和通信介質。計算機存儲介質包括以任何方法或技術實現、用於存儲諸如計算機可讀指令、數據結構、程序模塊或其它數據等信息的易失性和非易失性介質、可移動和不可移動介質。計算機存儲介質包括但不限於RAM、ROM、EEPROM、快閃記憶體或其它存儲器技術、CD-ROM、數位化多功能光碟(DVD)或其它光學存儲技術、磁盒、磁帶、磁碟存儲器或其它磁性存儲設備、或任何其它可用於存儲所需信息並可由計算機110訪問的介質。通信介質通常在諸如載波或其它傳輸機制的已調製數據信號中體現計算機可讀指令、數據結構、程序模塊、或其它數據,且包括任何信息輸送介質。術語「已調製數據信號」意指在信號中用對信息編碼方式設置或改變其一個或多個特徵的信號。作為示例,而非限制,通信介質包括諸如有線網絡或直線連接的有線介質,和諸如聲學、射頻(RF)、紅外線和其它無線介質的無線介質。以上任何介質的組合也應包括在計算機可讀介質的範圍中。
系統存儲器130包括諸如只讀存儲器(ROM)131和隨機存取存儲器(RAM)132的易失性和/或非易失性存儲器形式的計算機可讀介質。包含有助於如起動時在計算機110內元件間傳送信息的基本例程的基本輸入/輸出系統(BIOS)133通常存儲在ROM 131中。RAM 132通常包含可被處理單元120立即訪問和/或當時正被操作的數據和/或程序模塊。作為示例,而非限制,圖1示出了作業系統134、應用程式135、其它程序模塊136、和程序數據137。
計算機110還可包括其它可移動/不可移動、易失性/非易失性計算機存儲介質。作為示例,圖1圖示了讀取和寫入不可移動、非易失性磁性介質的硬碟驅動器141,讀取和寫入可移動、非易失性磁碟152的磁碟驅動器151,讀取和寫入可移動、非易失性光碟156,諸如CD-ROM或其它光學介質的光碟驅動器155。其它也用在示例性計算環境中的可移動/不可移動、易失性/非易失性計算機存儲介質包括,但不限於,如磁帶、快閃記憶體卡、數位化視頻光碟、數位化錄像帶、固態RAM、固態ROM等等。硬碟驅動器141通常通過諸如接口140的不可移動存儲器接口與系統總線121連接,而磁碟驅動器151和光碟驅動器155通常通過諸如接口150的可移動存儲器接口與系統總線121連接。
如上所述並如圖1所示的驅動器及其相關聯的計算機存儲介質為計算機110提供計算機可讀指令、數據結構、程序模塊、和其它數據的存儲。在圖1中,例如,硬碟驅動器141被示為存儲作業系統144、應用程式145、其它程序模塊146、和程序數據147。注意這些組件可以與作業系統134、應用程式135、其它程序模塊136、和程序數據137相同或不同。在此給予作業系統144、應用程式145、其它程序模塊146、和程序數據147的編號不同至少說明他們是不同的副本。
用戶可通過輸入裝置如鍵盤162、話筒163、諸如滑鼠、跟蹤球或觸摸板等的定位裝置161向計算機110輸入命令和信息。其它輸入裝置(未示出)可包括遊戲杆、遊戲墊、衛星接收天線、掃描儀等等。這些和其它輸入設備常常通過與系統總線耦合的用戶輸入接口160與處理單元120相連,但也可通過諸如並行埠、遊戲埠或通用串行總線(USB)的其它接口和總線結構連接。監視器191或其它類型的顯示設備也可通過諸如視頻接口190的接口與系統總線121相連。除顯示器以外,計算機還可包括諸如揚聲器197和印表機196的其它輸出設備,它們通過輸出外圍接口195相連。
計算機110可以在使用與一臺或多臺遠程計算機,諸如遠程計算機180的邏輯連接的網絡化環境中運行。遠程計算機180可以是個人計算機、伺服器、路由器、網絡PC、對等裝置或其它公共網絡節點,而且通常包括上述與個人計算機110相關的許多或全部組件,儘管在圖1中僅圖示了存儲器存儲設備181。圖1中所描繪的邏輯連接包括區域網(LAN)171和廣域網(WAN)173,但也可包括其它網絡。這樣的網絡化環境在辦公室、企業範圍計算機網絡、內聯網和網際網路上是常見的。
當用於LAN網絡化環境中時,計算機110通過網絡接口或適配器170與LAN171連接。當用於WAN網絡化環境中時,計算機110通常包括數據機172或其它用於在廣域網173,諸如網際網路中建立通信的裝置。可以是內置式或外置式的數據機172與系統總線121通過用戶輸入接口160或其它適當機制連接。在網絡化環境中,與計算機110相關的程序模塊或其一部分可存儲在遠程存儲器存儲裝置中。作為示例,而非限制,圖1示出了駐留於遠程計算機180中的遠程應用程式185。應當理解,所示網絡連接是示例性的,且其它用於在計算機間建立通信連接的技術也可以使用。
圖2是移動裝置200的框圖,它是可選的示例性計算環境。移動裝置200包括微處理器202、存儲器204、輸入/輸出(I/O)組件206、以及用於與遠程計算機或其它移動裝置通信的通信接口208。在一實施例中,前述組件經適當總線210耦合用於彼此通信。
存儲器204被實現為帶有電池備用模塊(未示出)的諸如隨機存取存儲器(RAM)的非易失性電子存儲器,從而存儲在存儲器204中的信息在切斷移動裝置200的總電源時也不會丟失。存儲器204的一部分最好被分配為可尋址存儲器用於程序執行,而存儲器204的另一部分最好用來存儲以便模擬盤上的存儲。
存儲器204包括作業系統212、應用程式214、以及對象存儲器216。在操作期間,作業系統212最好由來自存儲器的處理器202執行。在一優選實施例中,作業系統212是可從微軟購買的WindowsCE作業系統。作業系統212最好被設計成用於移動裝置,並實現通過一組已展現的應用編程接口和方法可由應用程式214利用的資料庫特徵。對象存儲器216中的對象至少部分地響應於對已展現應用編程接口和方法的調用而由應用程式214和作業系統212維護。
通信接口208呈現使移動裝置200能收發信息的許多裝置和技術。這些裝置包括比如有線和無線數據機、衛星接收器、廣播調諧器。移動裝置200還可直接與計算機相連以與之交換數據。在這樣的情形中,通信接口208可以是紅外收發器或串行或並行的通信連接,它們都能發送流式信息。
輸入/輸出組件206包括各種輸入裝置,諸如觸摸感應屏、按鍵、滾動輪、話筒、以及包括音頻發生器、轉動裝置和顯示器的各種輸出裝置。如上列出的裝置作為示例,且無需都呈現在移動裝置200上。此外,其它輸入/輸出裝置可附於移動裝置200或與之在一起。
現在參看圖3,所示為根據本發明各實施例示出對象呈現系統300的框圖。對象呈現系統300包括其中存儲用於填充對象實例的數據的對象資料庫305。系統300還包括包含定義對象、屬性類型等的數據或信息的對象定義資料庫306。對象呈現引擎310通過從資料庫306查找對象呈現數據,然後用來自資料庫305的數據填充對象實例來產生對象實例。
使用資料庫305和306定義的對象具有與對象屬性相關聯的屬性組。如上所述,屬性組與對象屬性的關聯可按照屬於該屬性組的屬性,或按照被分配給屬性的屬性組來描述。兩種描述都是準確的。使用這些屬性組,對象呈現引擎310標識要呈現的一個或多個對象的屬性,並檢索對應於這些屬性的數據。然後對象呈現引擎310產生對象呈現315。例如,對象呈現315可以是一個或多個對象在顯示裝置上、列印紙張上等的可視化呈現。可視化呈現的示例包括UI、窗體、表格、電子表格、網頁(僅列舉一些)。基於本發明屬性組的非可視化呈現也是可能的。屬性組與對象相關聯的方式,以及對象呈現引擎310使用屬性組產生對象呈現的方式,參照圖4-9在後面詳細描述。
給定一個使用關聯、繼承、合成或定製相連的對象集,通常每個對象具有呈現簡單類型(例如整數/字符串)或引用其它對象的若干屬性。對於每個對象,可將組的名字分配給每個屬性。在每個對象繼承分層結構中,組的名字應是唯一的。對於每個對象,可將一個組標記為預設組,指示該組屬性是該對象的優選呈現。然後通過指定哪些組呈現該對象來構建用戶界面。如果一個組包含是對另一對象的引用的屬性,則這個對象被呈現為該其它對象的預設組。
圖4和5示出對象分層結構和引用的示例。如圖4所示有三個對象,SalesDocument(銷售文檔)410、PackingSlip(包裝條)420、以及Invoice(發票)430。PackingSlip對象420和發票對象430分別由繼承分層結構412和414與SalesDocument對象410相關。換言之,PackingSlip對象420和發票對象430是SalesDocument對象410的特定化。也就是說,SalesDocument對象410是PackingSlip對象420和發票對象430的一般化。
SalesDocument對象410包括圖4中411所示的5個屬性或屬性欄位。在此示例中,SalesDocument對象410的第一和第二屬性包括「ID」屬性和「類型」(Type)屬性。這些屬性的值基於包括在這些值中的數據類型在圖4中呈現。例如,ID屬性被呈現為整數(Int)值,而類型屬性被呈現為字符串值。填充類型屬性欄位的字符串值示例在本例中包括「PackingSlip」和「發票」。類型屬性或屬性欄位的其它示例可包括「報價」、「確認」、「接收」等。
SalesDocument對象410的第三個屬性-客戶(Customer)屬性實際上是指向另一對象的指針。SalesDocument對象410的這個屬性所指向的客戶對象如圖5所示。Sales Document對象410的前三個屬性已被分配為屬性組「Main」(主要)460。
在示例實施例中,該主要屬性組460是預設屬性組。可使用各種各樣不同方法的任一種來指明哪個屬性組是預設屬性組。如在以下要更詳細描述的,通過將SalesDocument對象410的前三個屬性分配給主要屬性組460,與這些屬性相關聯的屬性值信息通過包括指向主要屬性組的指針可方便地一起顯示,用於產生對象410的可視化呈現。
SalesDocument對象的最後兩個屬性或欄位是都具有字符串值的「CreatedDate」(創建日期)和「語言」(Language)。由於這兩個欄位本質上都是管理性的,可能會想要在一個窗體或其它可視化呈現上一起見到它們。為便於此,這兩個屬性被包括在第二屬性組-「管理」屬性組470中,如圖4所示。
在圖4所示的示例中,有兩個SalesDocument對象410的特定化-PackingSlip對象420和發票對象430。PackingSlip對象420包括一個在標號421上呈現的稱為「倉庫」(Warehouse)的屬性,它具有一指向另一對象的指針的值。PackingSlip對象420的屬性欄位中所指向的倉庫對象未示出,但可被用以指明要從多個倉庫的哪一個發送條目或應向哪一個傳送條目。在此示例中,倉庫屬性421被包括在管理屬性組470中。
對於SalesDocument特定化的發票對象430,存在於標號431處表示的兩個屬性或屬性欄位-「Profile」(簡介)屬性和「NumberSequence」(序列號)屬性。發票對象的這兩個屬性都是指向其它對象(未示出)的指針。這些屬性的每一個被包括在第三屬性組-「訂購」(Booking)屬性組480中。
再參看圖5,「客戶」對象450包括在標號451示出的三個屬性。前兩個屬性,具有整數值的客戶「ID」和具有字符串值的客戶「名字」,都被包括在主要或預設屬性組460中。客戶對象450的第三個屬性稱為「地址」,是對另一對象(未示出)。
的指針。客戶對象450的該第三屬性被包括在稱為「地址」(Address)的屬性組490中。
使用本發明的屬性組概念,通過指定哪些屬性組應當在窗體或呈現上可簡單地定義或創建對象的UI或其它呈現。然後圖3所示的對象呈現引擎310在資料庫305中查找這些屬性組的內容,包括來自屬性組所分配的多個對象的屬性,並顯示那些欄位。在某些示例性實施例中,特定屬性組的屬性一起在對象的可視化呈現上顯示。屬性組中屬性的名字與呈現上的一個控制項相匹配,而這些屬性的值被映射到相應的值欄位中。
圖6是如圖4所示的SalesDocument對象410的UI、窗體、或其它可視化呈現500的圖示說明。通過指定主要(即SalesDocument.Main)屬性組460和管理(SalesDocument.Administration)屬性組470應在窗體上,為SalesDocument對象410定義該UI 500。對象呈現引擎310從資料庫305中查找屬性組的內容,並在UI 500上顯示那些欄位。當對象呈現引擎310檢測到客戶屬性是SalesDocument對象410上主要或預設屬性組的一部分時,它轉向客戶對象450,查找預設屬性組(主要)460,並顯示那些相應欄位。
如圖6所示,在UI或窗體500中,主要屬性組460的名字被映射到可視化地呈現該屬性組名字的控制項510。類似地,來自SalesDocument對象410的在主要屬性組460中的ID、類型和客戶屬性也分別被映射到控制項511、513和515,以在UI500上可視化地顯示這些屬性的名字。SalesDocument對象410的主要屬性組460中前兩個屬性的值被映射到可視化地對應於控制項511和513的欄位512和514。因而,SalesDocument被示為具有ID號「1548」以及類型「發票」。由於主要屬性組460中SalesDocument對象410的客戶屬性是指向圖5所示客戶對象450的指針,對象呈現引擎310將該屬性的名字「客戶」映射到控制項515,而將來自對象450的相應屬性「ID」和「名字」的名字映射到控制項516和518。然後來自客戶對象450的哪些屬性值被分別映射到值欄位517和519。因而,SalesDocument對象410中所指向的客戶對象由客戶ID「10009」和客戶名字「Alfred Futterkiste」。在某些實施例中,UI 500中對應於主要屬性組460的控制項(510、511、513、515、516和518)及其相應映射值(512、514、517和518)使用邊界或其它可視化分界線505進行可視化地分組。
類似地,由於管理屬性組470被標明為SalesDocument對象410呈現的一部分,它的屬性和屬性組名字被映射到UI 500中的控制項530、531和533。這些屬性的相應值被映射到值欄位532和534。因而,可以看到SalesDocument對象410在2003年8月10日創建且語言為美國英語。再一次,如果需要,可使用邊界或其它分界線506來對管理屬性組470的屬性名字和值進行可視化分組。注意,在此實施例中,由於來自SalesDocument對象410的「創建日期」或「語言」中沒有一個包括指向另一對象的指針,就不再檢索其它屬性用於包括在UI 500的管理部分中了。
在本發明的某些實施例中,當使用繼承時,也繼承屬性組。然而,更多的屬性可被添加到同一屬性組中。例如,參照圖7,為了定義PackingSlip對象的UI、窗體或可視化呈現550,可再次指定屬性Main(主要)460和Administration(管理)470。或者在其它實施例中,用以定義PackingSlip對象420的屬性組可簡單地從SalesDocument對象410繼承,因為這兩個屬性組先前已被指明在可視化呈現SalesDocument對象中使用。在這些實施例中,僅指定要被顯示為PackingSlip對象420的可視化呈現的一部分的任意附加屬性組是必要的。在圖4所示示例中,沒有附加屬性組與用以呈現SalesDocument對象410的附加屬性組不同。
用以可視化地呈現PackingSlip對象420的UI 550與用以可視化地呈現SalesDocument對象410繼承的UI 500非常相似。一個差異可在對應於映射到控制項513的類型屬性的值欄位514中看到。在此實例中,該屬性的字符串值已從「發票」改變為「PackingSlip」。UI 550和UI 500之間的另一個差異與管理屬性組470的附加屬性相關。由於PackingSlip對象420包括管理屬性組470中的倉庫屬性(如圖4中421所示),對象呈現引擎310也從資料庫305檢索此數據。因而,在UI 550中顯示的管理屬性組信息包括映射到控制項535的該屬性名字「倉庫」。由於PackingSlip對象中的倉庫屬性是對另一對象的指針,映射到屬性欄位536的值「紐約」從資料庫305中的這個其它對象中檢索。
如上所述,定義特定對象的哪些屬性組要在UI中作可視化呈現可用多種方法實現。例如,可具體地列出每個屬性組用於對象呈現。或者,對象可繼承用以可視化地呈現該對象一般化的屬性組。此外,除了那些繼承的屬性組外還可列出其它屬性組。例如,對於發票屬性組430,還可指定除了從SalesDocument對象410中繼承的那些屬性組之外,「訂購」屬性組480也要在可視化呈現中使用。
一般屬性組以及從關聯和合成中拖入屬性的特定預設屬性組的使用,也提供了一種大大改進的產生對象或實體的可視化和其它呈現的方法。對於要產生的每個特定的不同類型的窗體或可視化呈現(可數百甚至數千地編號),所必須的是指定要呈現特定對象的屬性組。為了改變特定窗體或可視化呈現以包括其它屬性組的其它屬性,僅需要改變指定用於呈現該對象的屬性組。此外,如果對象的屬性被改變、添加或刪除,使用本發明的概念就無需修改先前已創建的大量窗體或可視化呈現的每一個。對於已有屬性改變、添加或刪除的對象,必須重新定義屬性組。因而,本發明提供了一種在按照繼承、定製、以及關聯當對象較複雜時便於UI的快速構建的方法和裝置,還提供了一種無需再次訪問呈現來自所討論的對象的數據的每個窗體、網頁、UI或其它可視化呈現就可修改對象屬性的方法和裝置。
圖8是示出在如圖3所示的資料庫305和/或306的資料庫中存儲數據的方法的框圖800。該方法使用本發明的概念使對象的呈現能被構建。如圖8中805所示,該方法包括使屬性組與資料庫中的對象相關聯。在一種表達方式中,這可被視為屬性組與資料庫306中的對象定義相鄰地存儲,而僅有的數據實例存儲在305中。如上所述,與對象相關聯的每個屬性組包括該對象的至少一個屬性。然後,如在810所示,該方法包括將屬性組存儲在資料庫中。最後,如在815所述,該方法包括指定在呈現該對象時要使用哪些屬性組。在一示例實施例中,「主要」屬性組是用於呈現該對象的預設屬性組。如圖8所示的該方法的其它方面參照圖3-7如上所述。
圖9是示出構建資料庫中特定對象的呈現方法的框圖900。如圖9所示的方法是參照圖3-7如上所述方法的實施例,且可由對象呈現引擎310實現。首先,如在905所示,該方法包括標識已被選定呈現該對象的與該對象相關聯的至少一個屬性組。該對象的至少一個屬性組將屬於與該對象相關聯的每個屬性組。
如在910所示,該方法還包括標識該特定對象在已標識屬性組的屬性中引用的任何其它對象。然後,如在915所示,該方法包括檢索與屬於一個或多個已標識屬性組的每個屬性相對應的數據。可從例如圖3所示的資料庫305中檢索數據。最後,如在圖9的920上所示,該方法包括使用被檢索數據呈現對象。對象的呈現可以是相鄰於屬性名字以及如果需要相鄰於屬性所屬屬性組的名字(如圖6和7所示)而顯示被檢索數據的可視化呈現。
儘管已參照特定實施例描述了本發明,本領域技術人員將理解可在形式和細節上作改變而不背離本發明的精神和範圍。
權利要求
1.一種構建具有至少一個屬性的對象呈現的方法,其特徵在於,所述方法包括標識已被選定呈現所述對象的與所述對象相關聯的至少一個屬性組,所述對象的至少一個屬性屬於與所述對象相關聯的每個屬性組;標識所述對象在已標識屬性組中引用的任何其它對象;檢索與屬於所述至少一個屬性組的每個所述屬性相對應的數據;以及使用被檢索數據呈現所述對象。
2.如權利要求1所述的方法,其特徵在於,呈現所述對象的步驟還包括通過顯示所述被檢索數據可視化地呈現所述對象。
3.如權利要求2所述的方法,其特徵在於,顯示所述被檢索數據的步驟還包括顯示屬於所述與那些屬性的值相鄰的至少一個屬性組的各屬性名字。
4.如權利要求3所述的方法,其特徵在於,顯示屬於所述至少一個屬性組的各屬性名字還包括顯示每個屬性組的名字,所述屬性組與屬於該屬性組的所述屬性的名字以及那些屬性的值相鄰。
5.如權利要求1所述的方法,其特徵在於,使用所述被檢索數據呈現所述對象還包括使用其自己及其父對象的屬性組來呈現所述對象。
6.如權利要求1所述的方法,其特徵在於,至少一個對象繼承分層結構在所述對象和所述其它已標識對象之間存在,且其中每個屬性組對一特定對象繼承分層結構是唯一的。
7.如權利要求6所述的方法,其特徵在於,所述對象是一第二對象的特定化,且其中所述對象繼承與所述第二對象相關聯的所述屬性組。
8.如權利要求6所述的方法,其特徵在於,對於每個屬性組,屬於所述屬性組的屬性包括所述對象的至少一個屬性以及唯一其它對象的一個或多個屬性。
9.如權利要求8所述的方法,其特徵在於,對於至少一個屬性組,檢索與屬於所述屬性組的每個屬性相對應的數據的步驟,還包括檢索與所述對象的屬性相對應的以及與所述屬性組相關聯的所述唯一其它對象的屬性相對應的數據。
10.如權利要求1所述的方法,其特徵在於,標識與所述對象相關聯的所述至少一個屬性組還包括標識與所述對象相關聯的一預設屬性組。
11.一種構建每個都具有至少一個屬性的各對象的呈現的方法,其特徵在於,所述方法包括使屬性組與資料庫中的對象相關聯,每個與對象相關聯的屬性組包括所述對象的至少一個屬性;將所述屬性組存儲在所述資料庫中;以及對於所述資料庫中多個對象的每一個,指定在呈現所述對象中要使用哪些屬性組。
12.如權利要求11所述的方法,其特徵在於,對象繼承分層結構在所述資料庫中多個對象的一些之間存在,其中所述使屬性組與對象相關聯的步驟還包括使屬性組與對象相關聯從而每個屬性組對一特定對象繼承分層結構是唯一的。
13.如權利要求11所述的方法,其特徵在於,所述使屬性組與資料庫中對象相關聯的步驟還包括使屬性組與資料庫中對象相關聯從而至少一個所述屬性組與兩個對象相關聯使得所述兩個對象的屬性屬於所述屬性組。
14.如權利要求11所述的以及用於構建具有至少一個屬性的特定對象的呈現的方法,其特徵在於,所述方法還包括標識已被選定呈現所述對象的與所述對象相關聯的至少一個屬性組,所述對象的至少一個屬性屬於與所述對象相關聯的每個屬性組;標識所述對象在已標識屬性組中引用的任何其它對象;檢索與屬於所述至少一個屬性組的每個所述屬性相對應的數據;以及使用被檢索數據呈現所述對象。
15.如權利要求14所述的方法,其特徵在於,呈現所述對象的步驟還包括通過顯示所述被檢索數據可視化地呈現所述對象。
16.如權利要求15所述的方法,其特徵在於,顯示所述被檢索數據的步驟還包括顯示屬於所述與那些屬性的值相鄰的至少一個屬性組的各屬性名字。
17.如權利要求16所述的方法,其特徵在於,顯示屬於所述至少一個屬性組的各屬性名字還包括顯示每個屬性組的名字,所述屬性組與屬於該屬性組的所述屬性的名字以及那些屬性的值相鄰。
18.如權利要求14所述的方法,其特徵在於,至少一個對象繼承分層結構在所述對象和所述其它已標識對象之間存在。
19.如權利要求18所述的方法,其特徵在於,所述對象是一第二對象的特定化,且其中所述對象繼承與所述第二對象相關聯的所述屬性組。
20.如權利要求18所述的方法,其特徵在於,對於每個屬性組,屬於所述屬性組的屬性包括所述對象的至少一個屬性以及唯一其它對象的一個或多個屬性。
21.如權利要求20所述的方法,其特徵在於,對於至少一個屬性組,檢索與屬於所述屬性組的每個屬性相對應的數據的步驟,還包括檢索與所述對象的屬性相對應以及與所述屬性組相關聯的所述唯一其它對象的屬性相對應的數據。
22.一種對象呈現系統被配置成實現如權利要求1-21的任一個所述的方法。
23.一種包含計算機可執行指令的計算機可讀介質,其特徵在於,所述指令用於實現如權利要求1-21的任一個所述的方法。
全文摘要
一種構建具有至少一個屬性的對象(410)呈現的方法包括標識(905)與該對象相關聯的被選定呈現該對象的至少一個屬性組(460)。對象的至少一個屬性屬於被呈現為與該對象相關聯的每個屬性組。該方法還包括標識(910)對象(410)在被標識屬性組的屬性中引用的任何其它對象(450)。對象呈現引擎(310)檢索(915)與屬於至少一個屬性組的每個屬性相對應的數據。然後引擎使用檢索到的數據來呈現(920)對象。
文檔編號G06F17/30GK1768319SQ200480001674
公開日2006年5月3日 申請日期2004年7月23日 優先權日2004年4月12日
發明者E·貝朗, M·F·蓬託皮丹 申請人:微軟公司