我正在看一个名为Automapper的图书馆。我对此有一些担忧:
我们不想公开我们的数据模型(GOOD)。为什么数据模型与您的数据库非常相似?
使用轻量级DTO而不是您的实体。 (GOOD)
现在我需要将我的实体映射到这些DTO。我是否尊重DRY原则?
答案 0 :(得分:4)
有人可能会说DTO违反DRY,但如果它对你的情况有意义,那么我就不会三思而后行了。
像大多数编程最佳实践一样,DRY不是灵丹妙药。有时你必须妥协。在这种情况下,我认为违反DRY是完全可以接受的,以防止将域名详细信息泄露给不需要它的呼叫者(例如N + 1延迟加载性能问题)所引起的问题。答案 1 :(得分:0)
取决于应用程序。事务应用程序,以及根据业务逻辑要求,将您的数据模型暴露给上层代码对于某种规模的项目是有意义的。我认为DRY在应用程序越大越重要,但我不太了解你提出这个问题的背景。