• 沒有找到結果。

物件導向式模組設計

在文檔中 中 華 大 學 (頁 56-61)

第四章 物件化資料庫連接架構

4.4 物件導向式模組設計

針對 Java 程式碼對應轉換系統,本論文提出之物件導向方式設計,圖 4.4 為 物件導向式系統架構類別圖,以下將針對每一個類別的責任與其屬性與操作進行 說明。

圖 4.4 物件化資料庫連接系統之類別圖

類別圖中定義了九個類別,透過這九個類別把關聯式資料的表格定義,與物 件導向式設計方式的類別圖做進一步的記錄與對應,以方便系統處理。詳細物件 之負責權責如表 4.2。

表 4.2 類別之負責權責

類別名稱 負責權責

JavaClass 類別圖中類別內資料與繼承關係 RelationshipRecord 記錄類別圖中類別之間的關係

ClassAttribute 記錄類別之屬性 ClassMethod 記錄類別之方法

DBSchema 關聯式資料庫定義碼之記錄 Table 關聯式資料庫中表格定義 Field 關聯式資料庫欄位定義 DBType 關聯式資料庫欄位屬性 JavaType 記錄 Java 資料型態

在本架構中,物件導向式類別圖將會被 JavaClass、ClassAttribute、

ClassMethod、RelationshipRecord 這幾個類別物件記錄下來,而關聯式資料庫的轉 換與對映,將會以 DBSchema、Table、Field、DBType 這四個類別物件給予記錄。

以下將針對較重要的類別進行說明。

4.4.1 Java Class 類別

JavaClass 類別主要的負責工作是記錄系統分析的類別圖,藉此記錄使用電腦 輔助軟體工程所產生的類別圖相關的資料。JavaClass 類別將會擁有類別相關的屬 性與方法之訊息,而實際存放屬性與方法的資料則由 ClassAttribute 與 ClassMethod 兩個系統的類別來進行記錄,JavaClass 類別之詳細內容如表 4.3 所述。

表 4.3 Java Class 類別之屬性與方法

JavaClass 名稱 說明

ClassName 記錄類別圖中定義之類別名稱

ClassMethod

記錄類別圖中定義之類別操 作,在此之資料型態應為 ClassMethod 之組合。

ClassAttribute

記錄類別圖中定義之類別屬 性,在此之資料型態應為 ClassAttribute 之組合。

Attribute

SuperClass

記錄類別圖中類別的繼承關 係,在此之資料型態應為 JavaClass 類別。

getAttribute() 取得 Class 本身之屬性物件 getMethod() 取得 Class 本身之方法 generJavaCode() 產生 Java 定義之程式碼

setClassName() 設定類別物件之名稱

setSuperClass() 設定繼承關係之父類別物件 Method

getSuperClass() 取得繼承關係之父類別物件

JavaClass 類別除了記錄屬性與方法之外,也會針對繼承架構進行記錄,在本 架構當中所提出的方法,當類別擁有繼承的關係時,則利用 JavaClass 類別當中的 SuperClass 這個屬性將繼承架構中的父類別記錄。

除此之外,JavaClass 類別會負責將該類別相關的資訊,由原先輸入本架構之 類別圖,透過字彙轉換與語法對應的方式,轉換成為 Java 之程式語言,以方便程 式設計師編寫程式。

同時 JavaClass 類別也產生資料庫存取代理物件(Database access proxy)來進行 資料庫存取。資料庫存取代理物件產生的方式是經由本類別圖當中所記錄之類別 關係、表格記錄等等資訊,整理成為一個以 Java 程式碼所編寫的物件,並且自動 產生在 Java 程式碼中。

4.4.2 ClassAttribute 類別

表 4.4 為 ClassAttribute 類別之屬性與方法,主要是記錄類別圖中每個類別內 所包含的屬性資料,同時建立與 Java 程式之資料型態之間的關係。每一個 JavaClass 類別物件中,可能包含多個不同的 ClassAttribute 類別物件,包含數量的多寡,則 是依照系統分析人員所繪製之類別圖而定。

表 4.4 ClassAttribute 類別之屬性與方法 ClassAttribute 屬性名稱 說明

Name 記錄屬性名稱

JavaType 記錄該屬性轉換成為 Java 之資 料型態,連接至 JavaType 物件 Attribute

Description 屬性相關之描述 setName() 設定屬性名稱

setDescription() 設定屬性相關之描述

setJavaType() 設定對應之 Java 資料型態物件 getJavaType() 取得對應之 Java 資料型態物件 Method

getName() 取得屬性名稱

4.4.3 RelationshipRecord 類別

類別圖當中,每個類別物件的關係則由 RelationshipRecord 類別進行記錄,如 表 4.5 所示,該類別最主要是將類別圖中之對應關係,如一對一關係,一對多關 係,多對多關係等關係,透過該類別進行記錄與相關處理。

RelationshipRecord 中所記錄之 JavaClass,擁有其相對應之對應資料,換言之,

在每個 RelationshipRecord 類別物件當中,必定會有成對的 JavaClass 類別物件與 其對應(Multiplicity)參數。

表 4.5 RelationshipRecord 類別之屬性與方法 RelationshipRecord 名稱 說明

Class1 記 錄 關 係 之 物 件 , 其 型 態 為 JavaClass 之類別物件

Class2 記 錄 關 係 之 物 件 , 其 型 態 為 JavaClass 之類別物件

Multiplicity1

記錄關係之組態,型態為一般 字串,用以說明 Class1 之對應 關係

Attribute

Multiplicity2

記錄關係之組態,型態為一般 字串,用以說明 Class2 之對應 關係

setClass1() 設定 Class1 之類別物件 setClass2() 設定 Class2 之類別物件 setMultiplicity1() 設定 Class1 之關係組態 setMultiplicity2() 設定 Class2 之關係組態 getClass1() 取得 Class1 之類別物件 getClass2() 取得 Class2 之類別物件 getMultiplicity1() 取得 Class1 之關係組態 Method

getMultiplicity2() 取得 Class2 之關係組態

物件導向式分析所產生的類別圖,大致上可以利用上述幾個物件類別進行保 存以方便後續自動產生相關的 Java 程式碼。關聯式資料庫定義碼的部份則需要透 過 DBSchema 類別物件進行保存與處理,以下將介紹在本架構中負責記錄與處理 關聯式資料庫相關之類別細節。

4.4.4 DBSchema 類別

表 4.6 為 DBSchema 類別物件之細部內容,該物件會記錄許多的表格物件,

同時每一個表格物件也包含了許多的欄位物件,這些欄位物件都會是對應到類別 圖中之類別屬性,在本架構中也就是會對應到 ClassAttribute 類別物件,同時每個 Java 資料型態又會有對應之資料庫欄位資料型態,使得資料庫的欄位資料型態與 類別圖當中的資料型態得以建立其對應關係。

表 4.6 DBSchema 類別之屬性與方法

DBSchema 名稱 說明

Table 記錄所有關聯式資料表格 之物件,其資料型態應為 Table 類別之組合

attribute

Domain 記錄關聯式資料庫之資料 庫名稱

setTable() 設定表格物件內容 setDomain() 設定關聯式資料庫之資料

庫名稱

setField() 設定欄位物件內容 getTable() 取得表格物件內容 getField() 取得欄位物件內容 getDomain() 取得關聯式資料庫之資料

庫名稱 Method

createSchemaFile() 產生資料庫定義碼檔案

每一個表格物件則對應至類別圖當中之類別,透過這個方法建立物件導向中 之類別與關聯式資料庫表格之間的對應關係。也使得 DBSchema 類別物件可以透 過 Table 類別物件與 Field 類別物件,將關聯式資料庫之定義碼自動化產生。

在文檔中 中 華 大 學 (頁 56-61)

相關文件