何时应将责任分配给服务而不是实体对象



是否有任何经验法则表明何时应将责任分配给服务对象而不是实体对象? 我真的对此感到困惑。

我认为

这里没有经验法则。确定类的职责是设计OO软件的技能。

也就是说,你的班级设计应该给你一些提示。例如,如果您计划创建一个方法作为实体的一部分,但该方法需要不属于实体的数据,则表明该方法在实体之上的级别(可能是域服务)上运行。

据我所知,领域驱动设计,实体对象是一些复杂数据的表示。很可能他们没有任何业务逻辑。

因此,如果您正在考虑仅保存数据的责任,那么它将进入实体对象。服务对象是负责给定值或实体对象(具有提供的上下文)的复杂逻辑的人。

当您需要对多个聚合根进行操作时,请使用域服务。

最新更新