2012-02-22 133 views
0

假設我有一個包含Venue的模型對象Event。當我查詢數據庫來填充場地時,我只想存儲可用於延遲加載Venuevenueid延遲加載模型

我有數據訪問類Events(複數)與函數功能像Event findEventByName(String name)。與其他模型對象類似。如果我Event課,我有getVenue這樣的:

public Venue getVenue() { 
    if (this.venue == null) 
     this.venue = Venues.findVenueById(this.venueid); 
    return this.venue; 
} 

這是可行的,但它將對夫婦​​我的模型我的數據訪問。我認爲我的設計不是真的「正確」?那麼我該如何改變它。對於這個學術項目,我認爲我不會使用像Hibernate這樣的第三方庫來了解如何實現這一點。

+1

實際上並不是那麼糟;我想問題是你有多少種不同的數據訪問方式?如果你有很多,那麼你可能想通過接口來做,否則它看起來沒問題。 – 2012-02-22 03:08:27

回答

1

我認爲你是正確的,它不是最好的設計來耦合你的對象模型到你的數據訪問。

關係映射器的現代對象非常先進。例如,EclipseLink可以動態修改類文件的字節碼,以提供延遲加載等功能。他們稱之爲weaving

+0

呵呵,那麼也許我可以保持原樣,或者當我填充我的模型時,我也注入了DataAccess對象。 – 2012-02-22 07:03:24