2010-10-09 66 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