首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >领域建模,DDD中的领域对象

领域建模,DDD中的领域对象
EN

Stack Overflow用户
提问于 2010-08-26 03:12:52
回答 2查看 2.6K关注 0票数 6

我是DDD的新手,正在尝试掌握其中的一些概念。

有人能给我解释一下DDD中域建模背后的想法吗?

我已经看过了维基百科的解释:http://en.wikipedia.org/wiki/Domain_model,但在我的理解中似乎仍然存在一些灰色地带。

根据我的理解,领域建模涉及围绕业务实体构建模型,以表达它们之间的关系,表达参与模型的实体等。

这不是一直在实践中的事情吗?在面向对象的世界中,您将业务实体建模为类、对象等。并围绕这一点构建软件。

我不理解的是领域建模在DDD中得到的重视。这是你在OO世界中发现的相同的对象/类建模,还是DDD的新特性?它与面向对象的设计/建模有什么不同?

非常感谢您的回答。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-08-26 03:27:15

一个区别是DDD中的Domain Model Pattern的“适当”实现是与横切关注点隔离的。

例如,它不包含与数据库或其他持久性有关的内容。在包含验证逻辑的地方,它是业务验证,而不是“名称是否超过列长度?”验证。

其思想是,域模型尽可能地封装“业务”--用业务术语(“普遍存在的语言”) --并将业务的相关方面暴露给“程序”,而不默认软件的需求。

另一方面,“软件”关注IO、UI等,但将所有业务逻辑委托给域模型。

原则上,您可以将域模型包装在一个程序集中,并在多个应用程序中使用它。当业务规则发生更改时,您有一个非常合乎逻辑的地方来影响更改(因为模型是业务相关方面的1:1或接近1:1的表示,并且使用与业务相同的术语进行描述)。

票数 7
EN

Stack Overflow用户

发布于 2010-09-01 22:49:08

DDD中的域不需要在OO中实现。在我的经验中,OO领域模型通常是最好的,但在一些非常有效的情况下,它可能不是最好的。

您可以使用规则引擎在规则中实现一个域(例如在荷兰,这是为大型抵押贷款应用程序所做的)。或者你可以用函数式语言来实现。本质上,您的领域,无论它是如何实现的,都与我通常所说的应用程序的技术方面是隔离的(或者,正如前面的答案所说的,它是横切关注点,尽管我认为在一个域中很可能存在横切关注点)。可以使用适配器实现的隔离层使域尽可能多地,甚至完全独立于技术细节。这一层通常利用外观和观察者等模式。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3569389

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档