域模型和数据模型之间的复杂映射 - 我们是否有失去紧耦合的风险?

时间:2013-01-22 18:21:44

标签: domain-driven-design

来自DDD: Tackling Complexity in the Heart of Software(第159/160页):

  

当特定地创建数据库模式作为对象的存储时,值得接受   一些模型限制,以保持映射非常简单

     

...

     

这确实需要牺牲对象模型的丰富性,有时还会有妥协   要在数据库设计中进行(例如选择性非规范化),但要做到其他方面   冒失去模型和实施的紧密耦合的风险。

     

...

     

但是通过检查代码或代码来确保映射是透明的,易于理解的至关重要   读取映射工具中的条目。

     

...

     

当数据库被视为对象存储时,不要让数据模型和对象模型   无论映射工具的强大功能如何,都会分道扬..牺牲一些丰富的物体   关系密切关系模型。

我明白通过更简单的映射,数据映射器将更容易维护,减少错误等,但我不明白为什么我们也可能冒险失去之间的紧密耦合域模型 DM的实现通过在 DM 数据模型复合体之间进行映射。

即,在创建 DM 时,我们应该试着忘记如何实现非域层以及它们将使用哪些技术。由于 Data Mappers 位于 DAL 内(因此位于域层之外),因此 DM <之间的映射的复杂性如何? / em>和数据模型(以及 Data Mappers 的复杂性)对 DM DM的实现之间的耦合有任何影响

谢谢

1 个答案:

答案 0 :(得分:2)

引用实际上是:

  

但另外做的是冒着失去模型和实现的紧密耦合的风险

它讨论的是概念模型及其实现(代码中)的耦合。这不是关于数据映射器和将数据映射到实现模型的讨论,而是关于在实现它时如何失去对概念模型的保真度 - 特别是当您需要考虑数据库或其他实现细节时。