Domain driven design 我需要在域驱动设计中保留与域对象相关的枚举

Domain driven design 我需要在域驱动设计中保留与域对象相关的枚举,domain-driven-design,Domain Driven Design,我正在尝试使用领域驱动设计开发一个应用程序。现在我有了这样一个场景:实体根据业务规则更改实体属性的状态,我将可能的状态放在枚举中,因此我需要在域驱动设计中保持此枚举与域对象相关。如果状态仅在域层中使用,则可以将其添加到那里。如果您需要在系统的其他层中使用这些值,那么我通常会制作一个单独的程序集,名为Common,可供任何层使用。DDD纯粹主义者可能对此有问题,但对我来说,枚举并不是真正的业务知识,从生产力的角度来看,它是一种实际的折衷,而不是在每一层中重复枚举定义。域驱动设计的角度,枚举是什么?

我正在尝试使用领域驱动设计开发一个应用程序。现在我有了这样一个场景:实体根据业务规则更改实体属性的状态,我将可能的状态放在枚举中,因此我需要在域驱动设计中保持此枚举与域对象相关。

如果状态仅在域层中使用,则可以将其添加到那里。如果您需要在系统的其他层中使用这些值,那么我通常会制作一个单独的程序集,名为Common,可供任何层使用。DDD纯粹主义者可能对此有问题,但对我来说,枚举并不是真正的业务知识,从生产力的角度来看,它是一种实际的折衷,而不是在每一层中重复枚举定义。

域驱动设计的角度,枚举是什么?它们是有价值的对象吗?不,它们不是有价值的对象。您可以创建一个名为say CustomerType的值对象,但这样它就不再是枚举了。从我所读到的内容来看,关于枚举的指导并不多。这就是为什么我乐于在我的其他层中分享它们。