所述贫血域模型被描述为由Martin Fowler在领域驱动设计的反模式。为了在域模型上具有业务逻辑,通常使用域服务。但是Vaughn Vernon认为将域服务注入域模型是有害的(请参阅“实施域驱动设计,第387页”)。
我认为这些意见是矛盾的,这是真的吗?如何兼顾这两点?
是注入域服务与贫血域模型和普通域服务相比真的富域模型吗?
4
我绝不是专家,但是我认为进入域服务和域实体的逻辑类型是根本不同的。进入实体的逻辑是使对象保持正确状态所需的逻辑。这涉及验证和转换逻辑。另一方面,域服务用于更高级别的逻辑。因此,例如,域服务将以复杂的方式对涉及多种不同类型实体的业务流程进行建模。
—
MetaFight 2015年
@MetaFight:即使业务流程以复杂的方式影响多个实体,您也可以在没有良好的“聚合根”域模型的情况下在没有服务的情况下实现此目标,即,该域模型本身可以访问所有受影响的实体作为属性或字段。
—
Greg Burghardt
这是有道理的:)
—
MetaFight 2015年