我正在构建一个相当大的应用程序,它利用 DAO/DTO 设计模式从数据库中获取数据。在应用程序中,特定的 DTO 已成为“核心数据结构”,因为它在整个项目中都被引用。我想知道在整个项目中如此深入地集成这个 DTO 是否是一个好习惯,或者我应该有某种转换层来将 DTO 转换为非 DTO 对象?
我可以看到支持和反对拥有此转换层的原因。例如,如果我们确实有转换层,那么: 1) 对 DTO 的剧烈更改可能会导致整个项目出现错误,因此转换层将错误隔离到代码中的单个点。2)我能够向核心数据结构添加额外的逻辑,因为它是自动生成的,所以无法添加到 DTO。
但是,我也看到了转换层的缺点:1)DTO 转换代码必须在 DTO 更改时保持一致。这增加了程序员必须注意的另一个步骤,因此更容易出错。2)这也会导致代码重复,因为在大多数情况下,您正在复制 DTO 的访问器。
最好的路线是什么?无处不在的 DTO 还是转换层?那里的任何人都可以指导我正确的方向吗?