【发布时间】:2013-04-25 08:57:53
【问题描述】:
我有一个带有复杂模型的“流程”应用程序(此处简化)。该应用程序具有这样的网络服务:
Webservice | Application behind webservice
------------------------------------------------------
ProcessDTO | Process
.getLabel() | .getLabel()
| .getSubComponents()
| .execute(input) // calls ProcessComponent.execute
| ProcessComponent
| .execute(input)
ProcessService | ProcessRepository
.findProcess(id) | .findProcess(id)
.executeProcess(..)|
问题是:如何使用此网络服务将Process 实体集成到应用程序中?
我正在考虑创建一个Process 实体,而不是直接使用 DTO 作为实体。
例如,在另一个应用程序中,我的Module 有一个Process。
我可以连接到我的 ORM,所以“关联”部分不是问题。问题是Module 如何执行一个进程?
通过调用
ProcessService:这很难看,因为我最终会得到一个不提供任何域逻辑的贫血进程实体。此外,这会使Module实体使用服务,这不太好对吧?通过在
Process中添加execute()方法?但是实体方法也调用了一个不好的服务
【问题讨论】:
标签: web-services service domain-driven-design entity soa