我应该如何在客户端应用程序的实体中编写方法?
例如,我有一个客户端移动应用程序和一个服务器。服务器包含一些验证和业务逻辑。移动应用程序知道服务器的 API。例如,移动应用程序应该在 /post/{postID} 上调用 POST HTTP 方法并传递一些参数来编辑某些帖子。 Post.edit() 方法应该是什么样子? (哪里调用API?)
我应该将一些PostService传递给Post实体来调用API吗?那么PostService是领域服务吗?
我应该将一些PostService传递给Post实体来调用API吗?那么PostService是领域服务吗?
不。您不应该将 PostService 传递给 PostEntity。实体必须具有更改其自身实例状态的方法。 PostService 影响任何 PostEntity 实例。
您可能更愿意创建一个 ApplicationService 来集中此逻辑。应用程序服务也称为用例或命令/查询处理程序。基本上,序列图 UML 的实现然后,您的客户端(移动应用程序)将调用这些应用程序服务。
DomainService 和 ApplicationService 都是 DDD 的概念,但它们在语义上是不同的,如果你不知道区别,我建议你看这篇文章。