我正在開發一個Java代碼庫,並且剛剛成爲Java社區的新成員。我獨立使用Java,但從來沒有與可能做慣用的 Java的團隊合作。創建BO,DO,DTO,DAO僅對主ID執行SELECT有什麼技術優勢?
目標是在主鍵上執行SELECT
。爲此,代碼庫會創建一個business object,一個data object,一個data transfer object和一個data access object。他們並不都是用同樣的方法創造出來的。有一個深層調用堆棧,唯一的目標是從另一個創建其中的一個。最後,DAO使用QueryEngine
對象與持久性存儲進行通信。 QueryEngine
完成抽象持久存儲的工作。
我看到抽象持久性存儲的價值,因爲您可以靈活地改變它的內容而不會破壞客戶端。我和下一個人一樣愛對象,但我不明白你爲什麼要用這種方式編寫代碼?這是慣用的Java,因爲整個代碼庫都充滿了這些?
PS:我忽略了對由於看似不必要的對象創建和方法調用引起的內存分配而導致的性能問題的討論。
PPS:使用的語言是Java,而且這裏鏈接的所有維基百科頁面看起來質量低下,並且Java特定,儘管它們試圖聽起來像是計算機科學。
我不確定這個失去耦合的價值是在這裏,雖然?所有這些層的目的只是一個 - 抽象持久存儲。沒有? –