[Brave]請教資料懶載入的具體實現技術

Brave發表於2003-11-27
對於資料的懶載入,在某些物件關係條件下、大資料量情況下對效能是有影響的。那麼,懶載入的根本思路就是“資料在需要的時候才進行載入”。我希望在我的 Brave 系統裡面支援資料的懶載入。原來的考慮是不完整的和不好的,我的思路如下:
在資料值物件中,對於關係屬性(通常是集合型別)的 get 方法,在呼叫該方法的時候作判斷:如果關係資料沒有初始化,那麼就呼叫相關的資料載入方法載入她(通常是透過DAO)。但這裡有幾個嚴重的問題:
1:資料值物件通常是簡單的物件,呼叫資料訪問方法破壞了她的簡單性,雖然是以“客戶程式設計師看不到”的方式進行的;
2:資料值物件通常是需要網路傳輸的,也就是通常是需要序列化的,那麼資料訪問方法的引入,增加了需要序列化的工作,同時,這些東西是不必要的。
所以,這種做法是否定了的。目前的做法(想法)是考慮關係,但是關係資料不進行預先載入,也不是系統機制自動完成的,而是客戶程式設計師呼叫相關的方法自己完成的,也就是,對於存在複雜關係的物件的值的載入可能是多個步驟的,而這些步驟可能來自不同的物件不同的方法。

更好的,我可能是希望是系統自動化完成的,也就是我最初的想法是系統自動的完成的。但是,我的水平還不夠,我不會 物件方法的攔截和自動化的載入(動態的或者靜態的,但這些概念不是很清楚,涉及到了AOP等吧??)。這些技術可能涉及到動態代理的實現,但是,我沒有做過對於產品不是好的選擇,也稍微破壞了系統簡潔的定位,所以希望大家給我一些意見和看法。

相關文章