“一个DTO类”的方法几乎肯定是坏的.它闻起来像神级.许多权威人士完全谴责DTO.你可以从一些基类继承,但对于值对象,它并不是真的合理.组成相同.它使您的代码更复杂.在调试“DocReview”流程时,您必须查看两个,三个或更多DTO类,以便使用这两种方法来理解它. Bleagh!此外,每个DTO通常位于单独的语义域中:“Doc”不是“DocReview”.因此,明显的“共同”元素实际上并不常见.他们只是共享一种实现类型;他们的意思完全不同.
当成员类型本身是复合的时,例如,如果许多域共享标识符的概念,您可以将组合的类型设置为这些域的DTO.在你的例子中,你可能有
public class Identifier {
long id; // should be a 'String', actually
String name;
}
public class Doc {
private Identifier identifier;
private String docType
}
public class DocReview {
private Identifier identifier;
private String status;
private String comment;
}
这里的关键是Identifier在两个域中在语义上是等价的,因此将它作为一个通用类型是有意义的.否则你不会这样做.
边栏:“Dto”(或“DTO”)作为后缀并不是很好的命名,真的.