什么是领域模型

时间:2009-12-07 23:03:45

标签: design-patterns dns

我已阅读维基百科对域模型的定义。我还是不明白。我一直在阅读很多关于NHibernate的帖子,几乎在我阅读的每篇文章中我都看到了“域模型”一词。究竟是什么,并且任何人都有域模型的例子。

6 个答案:

答案 0 :(得分:17)

基本上,它是您商业目的所需对象的“模型”。

假设你正在建立一个销售跟踪网站 - 你可能会有一些类,如客户,供应商,交易等。整套课程以及它们之间的关系将构成你的Domain Model

答案 1 :(得分:7)

如果你要拿走你的程序并删除gui和DBMS,并用命令行界面和MySQL服务器实例替换它,那么将整个东西移植到具有不同系统调用和文件系统的不同平台访问api调用,您在该过程中未更改的部分是域模型。

答案 2 :(得分:3)

域模型是域中实际情况对象的直观表示。 域是一个值得关注的领域。它用来指您正在处理的区域。 该模型是一个图,对于领域模型,大多数使用类图UML。类图仅用于表示法。 术语“领域模型”并不意味着描述软件类别的一组图。

例如,假设有一家商店。您要为该商店构建一个全新的销售点系统(简称为POS系统)。 POS系统是用于记录销售和处理付款的计算机化应用程序。因此,您专注于POS系统的领域。 现在,您将概念化将用于该系统的对象。 因此,您将获得以下对象:销售,付款,注册,项目等。 在域模型中,您可以对这些对象进行建模并在它们之间绘制关联,以便您从高层次上了解该系统的工作方式。 POS域模型的示例如下:

enter image description here

答案 3 :(得分:2)

这篇文章可能有所帮助:

http://domaindrivendesign.org/library/evans_2004

基本思想是域是问题域,模型是......它的模型。上面的文章比我更有说服力,如果你想要走下兔子洞那里还有很多其他的资源。

答案 4 :(得分:1)

从埃里克·埃文斯(Eric Evans)的“域驱动设计:解决软件核心中的复杂性”的角度进行回答:

  

[域]模型是一个抽象系统,描述了域的选定方面,可用于解决与该域相关的问题。

实际上,这意味着以下内容。在输入中,我们有领域专家,领域知识资源和软件产品需求。 建模是指获取该领域知识的相关部分(针对正在开发的软件),并以某种方式表示出来。如果我对作者的理解正确,则可以通过多种方式表示模型:以文本,图表,代码或口头交流的形式。该模型与迭代软件开发同时进行更新,可根据软件开发的需要进行重新设计。

领域模型是与给定软件开发项目相关的领域知识的选择性和结构化表示。

答案 5 :(得分:0)

域模型是对一个特定业务域进行精确建模的结构的集合。简而言之,它是实体,枚举,值对象,异常/自定义异常,接口,服务等的集合。所有这些都代表域模型。对描述业务领域有任何影响的任何事物。另一方面,任何不参与本说明的构造; UI代码,与基础架构相关的代码,持久性对象,各种工具等;在DDD中被视为第三方/外部关注点。

查看这篇简短的文章

https://fiseni.com/posts/what-is-a-domain-model/