来自DDD: Tackling Complexity in the Heart of Software(第159/160页):
当特定地创建数据库模式作为对象的存储时,值得接受 一些模型限制,以保持映射非常简单
...
这确实需要牺牲对象模型的丰富性,有时还会有妥协 要在数据库设计中进行(例如选择性非规范化),但要做到其他方面 冒失去模型和实施的紧密耦合的风险。
...
但是通过检查代码或代码来确保映射是透明的,易于理解的至关重要 读取映射工具中的条目。
...
当数据库被视为对象存储时,不要让数据模型和对象模型 无论映射工具的强大功能如何,都会分道扬..牺牲一些丰富的物体 关系密切关系模型。
我明白通过更简单的映射,数据映射器将更容易维护,减少错误等,但我不明白为什么我们也可能冒险失去之间的紧密耦合域模型和 DM的实现通过在 DM 和数据模型复合体之间进行映射。
即,在创建 DM 时,我们应该试着忘记如何实现非域层以及它们将使用哪些技术。由于 Data Mappers 位于 DAL 内(因此位于域层之外),因此 DM <之间的映射的复杂性如何? / em>和数据模型(以及 Data Mappers 的复杂性)对 DM 和 DM的实现之间的耦合有任何影响
谢谢
答案 0 :(得分:2)
引用实际上是:
但另外做的是冒着失去模型和实现的紧密耦合的风险
它讨论的是概念模型及其实现(代码中)的耦合。这不是关于数据映射器和将数据映射到实现模型的讨论,而是关于在实现它时如何失去对概念模型的保真度 - 特别是当您需要考虑数据库或其他实现细节时。