【发布时间】:2010-12-24 05:27:27
【问题描述】:
我已经阅读了域模型的维基百科定义。我还是不明白。我已经阅读了很多关于 NHibernate 的帖子,几乎在我阅读的每一篇文章中,我都看到了域模型这个术语。它到底是什么,有没有人有域模型的例子。
【问题讨论】:
标签: design-patterns dns
我已经阅读了域模型的维基百科定义。我还是不明白。我已经阅读了很多关于 NHibernate 的帖子,几乎在我阅读的每一篇文章中,我都看到了域模型这个术语。它到底是什么,有没有人有域模型的例子。
【问题讨论】:
标签: design-patterns dns
基本上,它是您的业务目的所需的对象的“模型”。
假设您正在创建一个销售跟踪网站 - 您可能拥有诸如 Customer、Vendor、Transaction 等类。整组类以及它们之间的关系将构成您的 Domain Model。
【讨论】:
如果您要使用您的程序并剥离 gui 和 DBMS,并用命令行界面和 MySQL 服务器实例替换它,那么将整个东西移植到具有不同系统调用和文件系统的不同平台访问 api 调用,您在该过程中没有更改的部分是域模型。
【讨论】:
域模型是域中真实情况对象的可视化表示。 域是关注的领域。它用于指代您正在处理的区域。 模型是一个图,对于领域模型,类图 UML 最常用。类图仅用于表示法。 领域模型一词并不意味着一组描述软件类的图表。
例如,想象一家商店。对于那家商店,您想建立一个全新的销售点系统(我们称之为 POS 系统)。 POS 系统是用于记录销售和处理付款的计算机化应用程序。因此,您专注于 POS 系统的领域。 现在您将概念化将用于该系统的对象。 因此,您将获得以下对象:销售、付款、注册、物品等。 在域模型中,您对这些对象进行建模并绘制它们之间的关联,以便您对这个系统将如何工作有一个高层次的了解。 POS 域模型的示例如下:
【讨论】:
这篇文章可能会有所帮助:
https://dddcommunity.org/learning-ddd/what_is_ddd/
基本思想是域是问题域,而模型是……以及它的模型。上面的文章说得比我更有说服力,如果你想深入兔子洞,那里还有很多其他资源。
【讨论】:
从 Eric Evans 的“领域驱动设计:解决软件核心的复杂性”一书的角度来回答:
[一个领域]模型是一个抽象系统,描述了领域的选定方面,可用于解决与该领域相关的问题。
实际上它的意思如下。在输入方面,我们有领域专家、领域知识来源和对软件产品的需求。 建模意味着引出该领域知识的相关[对于正在开发的软件]部分并以某种方式表示它。如果我对作者的理解正确,模型可以通过多种方式表示:文本、图表、代码、口头交流的形式。该模型与迭代软件开发并行更新,并根据软件开发的需要进行重新设计。
因此,领域模型是与给定软件开发项目相关的领域知识的选择性和结构化表示。
【讨论】:
领域模型是一组结构,可以准确地为一个特定的业务领域建模。简单地说,它是实体、枚举、值对象、异常/自定义异常、接口、服务等的集合。所有这些都代表了领域模型。任何对描述业务领域有任何影响的东西。另一方面,任何不参与此描述的构造; UI 代码、基础设施相关代码、持久化对象、各种工具等;在 DDD 的上下文中被视为第三方/外部关注点。
看看这篇短文
【讨论】: