上下文: 所以,我试图建立一个荒谬复杂的领域模型。与用户交谈,系统将有多种使用方式(例如:一种方式是从员工的角度来看;另一种方式是从雇主的角度来看)。实际上,它们是重用核心域的多个应用程序。
问题: 从多个角度创建域名是错误的吗?例如,在业务运行时构建域意味着创建各种关系类,这些关系类带有关于实体的额外信息等等......但是,从特定的角度运行时,图像更加清晰,因为大多数关系类可以滚动到它们的父实体中。
想法?反驳?我完全离开了吗?
答案 0 :(得分:4)
不,这绝对合适。埃文在他的书中称这些“观点”为界限背景。
尝试构建一个以特定方式很好地解决域的简单模型,而不是拥有一个非常复杂的域模型。有界上下文可以链接在一起形成一个更小,更简单,直接的域模型的网络。
答案 1 :(得分:2)
我认为您不应该尝试预先定义'核心域'。让它出现在开发过程中。此外,2个(或更多)观点不常见的任何内容都不应该在“核心”中。
例如,从雇主角度构建系统的一部分。这可能会提示您创建“项目”,“任务”和“客户”等实体。然后从雇主的角度构建一部分。这可能会提示您构建新实体,并重用“项目”和“任务”。那时我将'Project'和'Task'移动到系统其余部分共享的'核心库'。
有时您会找到共同的实体,但以不同的方式相关。在这种情况下,关系应该由上下文注入,而不是与实体本身一起内置。