【发布时间】:2010-06-01 17:48:03
【问题描述】:
我正在构建一个问卷创建器。问卷由部分组成,部分由页面组成,页面由问题组成。问卷是总根。
部分、页面和问题可以有所谓的短代码,它们在问卷中应该是唯一的(但在数据库中不是唯一的,因此它们不是严格的身份)。我打算使短代码成为一个值对象,并希望在调查问卷中包含它应该是唯一的业务规则,但我不确定如何确保这一点。我的理解是值对象不应该访问存储库或服务层,那么它如何确定它是否是唯一的?
感谢您的帮助。
达伦
【问题讨论】:
-
您的“简码”是生成的还是系统的输入?这将改变答案。即,如果我输入一个在任何地方都不存在的新短代码,它会被插入吗?但是,通常,通过服务层驱动您的输入。该服务可以调用来构建聚合并验证它是唯一的。如果它是唯一的,则允许插入/更新。如果不是,请不要让它发生。域在域对象以及调用它们的服务中是分层的。您的业务逻辑将根据您的工作范围存在于不同的位置。
标签: domain-driven-design ddd-repositories value-objects