2010-10-09 79 views
2

您好: 我有其中一個線程層次(堅持實體)建模如下的應用程序(注意,這可能是一個深度嵌套層次):爪哇 - 處理層次

Thread 
{ 
    private key; 
    private rootKey; 
    private parentKey; 


.. getters .. 
.. setters .. 
} 

我有一個DTO其具有以下結構

ThreadDTO 
{ 
    private key; 
    private rootKey; 
    private parentKey; 

    ArrayList<ThreadDTO> childThreads; 

... getters ... 
... setters ... 
} 

我想將實體實例轉換爲DTO。是否有任何標準算法/最佳實踐可用於進行此轉換? 任何反饋,將不勝感激..

回答

1

DTO是很煩人的,你可以跟他們做的最好的事情是創建在參數取Thread的方法和複製的屬性,而另一個將返回一個Thread用屬性的副本。

Adam Bien的另一個解決方案是Generic DTO,安全性較低,但代碼中的複製/粘貼也較少。

+0

我的問題更關係到如何創建嵌套層次結構(即ArrayList 的人口數量),以便頂層ThreadDTO實例包含所有子線程DTO(自引用層次結構)。 – mithrandir 2010-10-09 22:34:04

+0

@newbie,同樣的方法,由於您必須手動複製'Thread to'ThreadDTO'的所有內容,所以您只需通過List並獲取每個'Thread'的'ThreadDTO'。注意循環引用。 – 2010-10-09 22:36:06

+0

感謝您的回覆。我正在尋找填充ArrayList childThreads的性能優化方式 – mithrandir 2010-10-10 04:10:23