0

来自DDD:解决软件核心的复杂性(第 159/160 页):

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

...

这确实需要牺牲对象模型的丰富性,并且有时必须在数据库设计中做出妥协(例如选择性非规范化),但否则就有失去模型和实现的紧密耦合的风险。

...

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

...

当数据库被视为对象存储时,无论映射工具的功能如何,都不要让数据模型和对象模型相差甚远。牺牲一些丰富的对象关系以保持接近关系模型。

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

也就是说,在创建DM时,我们应该尽量忽略非域层将如何实现以及它们将使用什么技术。并且由于数据映射器位于DAL内(因此在域层之外),那么DM数据模型之间映射的复杂性(以及数据映射器的复杂性)如何对DMDM 实现之间的耦合产生任何影响?

谢谢

4

1 回答 1

2

报价实际上是:

但否则会冒失去模型和实现的紧密耦合的风险

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

于 2013-01-22T18:33:53.997 回答