代码之家  ›  专栏  ›  技术社区  ›  Perpetualcoder

使用DTO和实体是否违反了干燥原则?

  •  4
  • Perpetualcoder  · 技术社区  · 16 年前

    我在看一个叫 Automapper .我对此有一些顾虑:

    1. 我们不想公开我们的数据模型(很好)。为什么数据模型应该与数据库非常相似?

    2. 使用轻量级DTO而不是实体。(好)

    3. 现在我需要将我的实体映射到这些DTO。我尊重干燥原则吗??

    2 回复  |  直到 16 年前
        1
  •  4
  •   Kevin Pang    16 年前

    有人可能会说DTO违反了Dry,但如果它对您的情况有意义,那么我不会再想它了。

    和大多数编程最佳实践一样,Dry并不是一个银弹。有时候你必须妥协。在本例中,我认为违反dry是完全可以接受的,以防止将您的域详细信息泄漏给不需要它的调用方(例如n+1延迟加载性能问题)。

        2
  •  0
  •   cbkadel    16 年前

    取决于应用程序。事务应用程序,并且根据业务逻辑需求,将数据模型暴露于上层代码对于一定规模的项目是有意义的。我认为dry越大应用程序就越重要,但我对您提出这个问题的上下文了解不够。