代码之家  ›  专栏  ›  技术社区  ›  Ben Aston

在域模型中传递DTO

  •  2
  • Ben Aston  · 技术社区  · 14 年前

    我看到在域模型中的类型内创建DTO类型并在这些类型之间传递。这是一个很好的练习吗?

    我一直认为DTO主要用于上下文边界(即对象图的边缘),以分离上下文实现(如域/UI边界)。

    2 回复  |  直到 14 年前
        1
  •  2
  •   Samuel Meacham    14 年前

    你的问题有点主观,但没关系。就像大多数“硬性和快速规则”一样,确实没有硬性和快速规则。只有指导方针。总是有一个例外,或一些特殊情况,其中最佳的行动方案是做一些违反最佳实践的事情(如使用 goto 语句立即脱离多个嵌套循环)。

    也就是说,不,使用域模型将DTO传递给类型不是一个好的实践。DTO代表数据 转移 对象,传输通常意味着跨越某个边界的传输。如果您停留在域模型中,则不应该转换为DTO类型,然后再转换回域类型。

        2
  •  1
  •   duffymo    14 年前

    创建一个与您的域模型平行的DTO层次结构,仅仅是为了使纯粹性分层,对我来说似乎是一种反模式。我每次都反对。

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

    推荐文章