将基本设置器和getter以外的功能放在DTO中是否合适?
答案 0 :(得分:2)
好吧,在许多情况下,您可能需要一些序列化代码(对于您的序列化程序API所需的任何序列化接口 - 例如.NET中的IXmlSerializable
/ ISerializable
),但我想这不是不是你的意思......
这实际上取决于场景。如果你有一个足够简单的对象模型允许你使用你的域模型进行序列化,那么对于小项目来说,将它拆分出去可能没什么好处 - 关注点分离问题?大概。会造成长期的痛苦吗?可能不会(至少,如果您使用基于合同的序列化程序,那么您可以在没有人注意的情况下进行交换)。
对于更复杂的模型,您通常需要一个单独的DTO模型到域模型 - 在这种情况下,您可能需要在某个地方将转换逻辑(方法/运算符/等)放在域和DTO之间 - 所以 可能存在于那里,但是如果你拥有得到一个单独的DTO,则不太可能有太多额外的逻辑 - 该逻辑主要属于域模型和其他商务课程。
答案 1 :(得分:0)
根据定义,DTO除了数据访问器外没有任何行为。如果你需要一些逻辑,你可能需要重构一下你的模型。