2017-10-07 66 views
-1

在處理Java Web應用程序時,我想知道我的模型層是否應該如此編寫。例如,假設我們的SQL數據庫中有一個USER表,它由15列組成。現在,當我們用SQL選擇所有列時,我們將它映射到一個Java類,通過JSON序列化並通過網絡發送給某個View並在屏幕上顯示它。Java模型最佳實踐SQL - JSON -VIEW

在第二種情況下,我們只想在屏幕上選擇2列,所以我們做SELECT c1,c2 FROM USER。這就是我的問題來了......我應該將這些列映射到同一個Java模型類?或者我應該創建一個新的映射器和類來適應它?這兩種方法似乎都有缺點,對於每個查詢來說,單獨的類是更多的工作,但它確保您始終知道它包含的數據,而不是檢查空值或使用可選項,還會阻止您映射實際上的列不需要。

您的意見是?非常感謝!

+1

雖然它是更多的代碼,因此更多的工作要做,使用一個類用於不同的SQL數據映射是一個架構的不行。你將不得不離開類的成員未初始化或顯式設置它們爲null。查看SOLID體系結構原則的單一職責原則(https://en.wikipedia.org/wiki/SOLID_(object-oriented_design))。 – deHaar

回答

1

從技術上講,您可以對完整的15屬性以及部分2屬性實體重用相同的User類。但那會帶來一個代價。每當您在代碼中看到User類的實例時,您將不得不考慮它是完整實體還是部分實例?哪些字段可能不是null?這會讓代碼更難理解。

+0

感謝您的回答!怎麼命名?你會如何命名?例如只有2列的用戶;用戶名和顯示名稱?這不是一個用戶了,它就像UserWithUsernameAndDisplayName,但這將是太長的課程... – localhost

+0

哦,命名是困難的。 'UserDetails','UserNameDetails','UserNameInfo'。 – lexicore