领域模型和对象模型

11
  • 什么是领域模型
  • 什么是对象模型

领域模型和对象模型是相同的吗?这两者之间有什么区别?请举一个简单的例子进行解释。我对这些概念很陌生。我在Google上搜索了很多,但没有找到简单的解释和例子。

4个回答

8

系统的对象模型是一组类和对象,描述它们之间的关系以及包含在其中的属性和方法,这些都是基于面向对象原则:抽象、封装、继承和多态。

领域模型是描述问题领域的对象模型。它们包括问题领域中的领域对象,并描述它们之间的属性、行为和关系。


感谢您的快速回复。您能推荐一些初学者的书吗? - Asish AP
1
以下是一些链接,您可以使用它们来了解这些概念:链接1链接2链接3 - stamhaney

1
如果你根据DDD(领域驱动设计)谈论这些概念,我不同意先前的任何答案。正如作者在他的 书籍 中指出的那样,
领域模型不一定是对象模型。例如,在Prolog中实现了基于逻辑规则和事实的MODEL-DRIVEN DESIGN。
因此,领域模型是基于任何范例的领域规则的表示形式,不一定应该是对象,它可以是任何其他范例,但最重要的是,它必须使领域概念和规则清晰并与其他技术方面分离。
总之,我们可以说对象模型是领域模型的一种表示形式之一。

0
根据我的理解,对象模型仅涉及数据传输对象,只是数据库记录的镜像,没有行为。
领域模型中的实体具有数据和行为,模拟业务规则。领域模型不仅包括类,还包括在对象模型中没有意义的接口。

谢谢您的迅速回复。你能给初学者推荐一些书吗? - Asish AP
1
我认为这是一个非常狭隘的理解,尽管这种观点有些普遍。实际上,对象模型是一个非常广泛的概念。例如,Web浏览器使用对象模型来表示文档(DOM);其中包含的对象不是DTO,并且它也不是一个领域模型。 - tne

0

领域模型 => 对我而言,领域模型是独立于任何特定代码或软件的东西。如果我为餐厅相关的某个事物构建了一个领域模型,我可以在纸上表达我的领域模型(或者只是在脑海中)。我的领域模型是一个独立的概念实体,无论我最终是否基于它编写任何软件。

对象模型 => 我的领域模型转化为实际代码的地方就是对象模型。如果我的领域概念包括餐厅、订单和顾客,则我的对象模型可能包括像餐厅、订单和顾客这样的对象。

https://www.codewithjason.com/difference-domains-domain-models-object-models-domain-objects/


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接