domain-driven-design - 领域驱动设计中的模型应该有多现实?

标签 domain-driven-design software-design

<分区>

在 Eric Evans 关于领域驱动设计的书中写道:

Domain modeling is not a matter of making as “realistic” a model as possible. Even in a domain of tangible real-world things, our model is an artificial creation. Nor is it just the construction of a software mechanism that gives the necessary results.

现在我有两个问题:

  1. 是否应该设计一个模型 不知何故,它可以进化成一个更 任何时候需要的逼真形状 不触及之前迭代中的核心模型?
  2. 如果对上一个问题的回答是肯定的,我可以在哪里学习如何创建逼真的核心模型?
  3. 同样,如果第一个问题的答案是可能的,那么有一天我们的模型会反射(reflect)世界上的任何问题吗?

最佳答案

领域模型 不应不反射(reflect)真实世界。 它应该根据上下文只显示一种观点。

假设我们有一个玻璃

  • 有人可能会想,好吧,这是一个玻璃杯,我们可以把它装满水。它用于饮用
  • 其他人可能会认为,这是一种产品,我们可以出售
  • 另一个人可能会说,玻璃化库存元素。我不在乎它看起来如何,但我在这里得到了多少眼镜。

根据上下文,我们对玻璃进行不同的建模。仍然是同一个玻璃杯,但意义不同。

您可以在 Udi Dahan 的博客上找到与该主题相关的所有信息。
更多有关建模现实的主题,可以在这里找到 Don’t try to model the real world, it doesn’t exist.

关于domain-driven-design - 领域驱动设计中的模型应该有多现实?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36563989/

相关文章:

domain-driven-design - DDD 和实现持久化

.net - 永远不要扔掉软件?

unit-testing - 如何对具体实现进行单元测试

java - 通过访问器方法封装 java.util.Properties 访问被认为是不好的做法?

java - 覆盖和重载的方法

php - 领域驱动设计 : Handling complex entities with many states and relations (Real Estate)

grails - 带 Grails 的 DDD

node.js - Wolkenkit 事件采购有调度程序吗?

c# - DDD : Referencing non root Entities by Id from other Aggregates?

haskell - 函数式编程的分析与设计