4

背景:所以,我正在尝试构建一个复杂得离谱的领域模型。与用户交谈,系统的使用方式有多种(例如:一种是从员工的角度;另一种是从雇主的角度)。实际上,它们是重用核心域的多个应用程序。

问题:从多个角度创建域是错误的吗?例如,在业务运行时构建域意味着创建各种关系类,这些关系类包含有关实体的额外信息等等......但是,从特定角度运行时,情况会更加清晰,因为大多数关系类可以滚动到它们的父实体中。

想法?反驳?我完全脱离基地了吗?

4

2 回答 2

4

不,这绝对合适。Evan 在他的书中称这些“观点”为限界上下文。

与其拥有一个非常复杂的域模型,不如尝试构建一个以特定方式很好地解决域的简单模型。限界上下文可以链接在一起,形成一个更小、更简单、直接的领域模型的网络。

于 2008-10-14T13:08:22.807 回答
2

我认为您不应该尝试预先定义“核心域”。让它出现在开发过程中。此外,任何对 2 个(或更多)观点不常见的东西都不应该在“核心”中。

例如,从员工的角度构建系统的一部分。这可能会提示您创建“项目”、“任务”和“客户”等实体。然后从员工的角度构建一部分。这可能会提示您构建新实体,并重用“项目”和“任务”。那时我会将“项目”和“任务”移动到系统其余部分共享的“核心库”。

有时您会发现共同的实体,但以不同的方式相关。在这种情况下,关系应该由上下文注入,而不是内置于实体本身。

于 2008-10-14T13:07:06.520 回答