![]() ![]() ![]() ![]() |
|||||
|
|||||
樓主 Kenming ![]()
![]() |
o ADO.NET 的設計理念是將資料庫“搬移”至應用伺服器的記憶體(DataSet),然後就與資料來源離線,讓應用程式就近方便“撈”資料處理。這是屬於“寬鬆耦合 (loose coupling)”的設計方式。 o J2EE 眾多永續儲存機制,包括 EJB Entity Bean, Hibernate 等,都是“緊緊地”維繫資料庫與應用伺服器內的資料物件 (Data Object)的一致性,將 O-R mapping 的自動化做到“最善”。這是屬於“緊密耦合 (tight coupling)”的設計方式。 o 兩者的設計方案並不一樣,但也各有各的優缺點,並不容易評斷好壞。無論如何,企業層級的系統設計,不應受限與受制於現有的系統機制,而是應該活用、善用其優點。 DataSet 在中間層的設計策略 目的:設計 虛擬DB(Virtual DB),位於中間層(middle-tier) ,讓 企業物件(business Object) 與 控制物件(control object) 得以方便撈資料處理。 實現方法:設計 ModelVDB 類別(Class),內含兩個屬性(property),一為 DataModel;另一為 DataUtility。兩者均為 DataSet 類別。 o DataModel 定義與關連資料庫一樣的 Table Schema(可依業務性質定義相關的 Table 即可)。 o DataUtility 定義關於 使用者資訊、查詢條件參數、資料庫連線資訊等 Table Schema。 設計約束: o 把 ModelVDB 視為是 “Value Object”,所以不提供任何方法供物件存取,企業或控制物件是直接透過屬性的存取來取得 位於 VDB 內表格的資料。 o VDB 要讀取或寫入資料庫系統,是透過控制物件呼叫 “小弟物件(PO, Persistent Object)” 負責與資料庫的溝通。 o Form 物件不得直接存取 ModelVDB ,必須透過控制物件,以維護資訊的完整性與封裝(encapsulation)。 ![]() 圖1、ModelVDB 與其它物件的相依性關係 ![]() 圖2、範例–查詢訂購資訊 by ModelVDB DataSet 在 UI 層的設計策略 目的:設計 表單專用的虛擬DB(Virtual DB),讓 表單物件直接存取其內表格的資料,再透過 控制物件 轉換格式至 ModelVDB,然後寫回至實體資料庫,反之亦然。 優點:表單擁有專屬的虛擬資料庫,設計的表格可以以表單為單位,來儲存表單內的欄位資訊,而不用與實體資料庫的結構相符。UI 與 結構設計團隊可以個別開發,彼此不用互相遷就,未來只要在控制物件執行格式轉換即可。 實現方法:設計 ViewVDB 類別(Class),內含兩個屬性(property),一為 ViewModel;另一為 ViewUtility。兩者均為 DataSet 類別。 o ViewModel 定義以表單為單位的表格,行(column)與資料型態以表單欄位為主。 o ViewUtility 定義關於 使用者資訊、查詢條件參數等 Table Schema。 設計約束:表單要寫入實體資料庫時,將 ViewVDB 當參數傳遞給 控制物件,再由其轉換格式為 ModelVDB,再透過 PO 物件寫入實體資料庫。 ![]() 圖3、ViewVDB 與其它物件的相依性關係 ![]() 圖4、ViewVDB 與 ModelVDB 的 Transform 循序圖表達
搜尋相關Tags的文章:
[ 講座 ] , [ hsdc ] , [ 軟體設計 ] , [ 樣式 ] , [ 架構 ] , [ 使用案例 ] , [ architecture ] , [ uml ] , [ 塑模 ] , [ 物件導向 ] ,
本篇文章發表於2007-06-05 16:59
== 簽名檔 ==
= 寸心千里= = blog: http://www.kenming.idv.tw/ = 軟體課程訊息 http://www.hsdc.com.tw/ |