【发布时间】:2016-09-26 01:47:17
【问题描述】:
下午
我目前正在学习领域驱动设计 (DDD),但无法掌握基本概念。
Patterns Principles and Practices (Millett and Tune)
在我的学习过程中,我经常遇到域模型 (DM) 这个术语,但它通常以不同的粒度级别进行讨论。
-
在某些情况下,它表示为各种相互关联的对象(客户、销售、报价、发票等)的工件(UML、草图、照片)的集合,这些对象概述了单个子域中的所有概念。
使得单个子域只有一个模型
在其他情况下,它表示为单个实体,例如 Product,其中一个子域将由许多不同的域模型组成。
由于上述模棱两可,我很难理解领域模型实际上是什么以及如何将这些模型放入有界上下文 (BC)
除此之外,我已经阅读了域模型可以在不同的限界上下文之间共享。
例如 Employee 在 Payroll 和 HR 有界上下文
之间共享考虑到这一点,
- 我要创建多个域模型来代表一个子域吗?
- 还是只有一个?
- 如果是后者,如何在上下文之间共享如此大的模型?
请有人能阐明这种歧义并准确解释什么是领域模型以及它的粒度。
非常感谢
丹尼尔
【问题讨论】:
-
域模型存在于有界上下文中,并且通常应与子域 1-1 对齐。
-
感谢@plalx 的反馈让我们深入了解,是用于表示单个对象(例如“客户”)的域模型,还是子域中存在的所有对象的集合?
-
模型是一个重载的术语。根据上下文,它可以表示 1. 或 2.。但在谈到 DDD、子域和限界上下文时,它往往是 1。
标签: domain-driven-design domain-model bounded-contexts