0

将基本 setter 和 getter 以外的功能放入 DTO 是否合适?

4

2 回答 2

2

好吧,在许多情况下,您可能需要一些序列化代码(对于您的序列化程序 API 要求的任何序列化接口 - 像.NET 中的IXmlSerializable/之类的东西ISerializable),但我想这不是您的意思......

这真的取决于场景。如果您有一个足够简单的对象模型以允许您使用域模型进行序列化,那么对于小型项目,将其拆分可能几乎没有什么好处 - 关注点分离问题?大概。会造成长期的痛苦吗?可能不会(至少,如果您使用基于合同的序列化程序,则不会,因此您可以在没有任何人注意的情况下交换它)。

对于更复杂的模型,您通常需要一个单独的 DTO 模型到域模型 - 在这种情况下,您可能需要在某个地方放置域和 DTO 之间的转换逻辑(方法/运算符/等) - 这样可能就存在于那里,但是如果您一个单独的 DTO,则不太可能有很多额外的逻辑 - 该逻辑主要属于域模型和其他业务类。

于 2010-01-28T12:53:28.810 回答
0

根据定义,DTO 没有任何行为,除了它的数据访问器。如果您需要其中的一些逻辑,则可能需要对模型进行一些重构。

于 2010-01-28T13:04:38.327 回答