2

我看到 DTO 类型在域模型的类型中创建并在类型之间传递。这是好习惯吗?

我一直认为 DTO 主要用于上下文边界(即对象图的边缘)以解耦上下文实现(例如在域/ui 边界)。

4

2 回答 2

2

你的问题有点主观,但没关系。与大多数“硬性规定”一样,确实没有硬性规定。只有指导方针。总是有一个例外,或者一些特殊情况,最好的做法是做一些违反最佳实践的事情(比如使用一个goto语句来立即打破多个嵌套循环)。

话虽这么说,不,在您的域模型中传递 DTO 类型并不是一个好习惯。DTO 代表数据传输对象,传输通常意味着跨越某个边界的传输。如果您停留在域模型中,则不应转换为 DTO 类型,然后再转换回域类型。

于 2010-07-15T01:07:58.797 回答
1

创建与您的域模型平行的 DTO 层次结构,只是为了分层纯度,对我来说似乎是一种反模式。我每次都会反对它。

EJB 1.0 鼓励以这种方式使用 DTO,因为传递健谈的实体 EJB 效率低下。人们会将数据加载到 DTO 中以避免网络流量。我觉得现在没必要了。

于 2010-07-15T01:06:44.813 回答