0

我對DAO模式中的傳輸對象有個疑問。假設您有一個USER表,並且此表中有20個字段。在業務邏輯中,我注意到在某些情況下我可能需要字段1到字段3,而在其他情況下可能需要字段4 - 字段6。所以當我實現userTO類時,我應該只定義字段1 - 6還是我應該定義全部20個字段。另一件事是,如果我定義了所有20個字段,UserDAOImpl類中的SQL將始終需要獲取所有20個字段以啓動userTO對象,這是否會成爲問題?轉移對象應始終反映整個DB行條目?

任何建議,非常感謝。謝謝!

回答

0

假設你的用戶至類是具有高度凝聚力......

當你創建你總是希望確保它們處於有效狀態,創建對象的實例。也就是說,您可以獲取給定對象的實例,並且可以將它傳遞到程序中的任何位置,而不會收到編程錯誤類型異常(例如NullPointerException)。這將導致你應該總是創建你的用戶所有20個字段的結論。

但是,我們在禁忌之內生活和工作。如果在用戶的每個實例中填充所有20個字段對您的系統造成不必要和不利的壓力,那麼您可能想要考慮創建一個userTOShort,其中包含經常使用的userTO字段的子集。然後,在必要時可以填充非常少需要的「可選額外」字段。這個「短」解決方案感覺有點髒,但我不知道更清潔的解決方案。