【发布时间】:2010-11-21 14:38:44
【问题描述】:
因为我的第一个问题太长了,所以我把它作为一个单独的问题来问。这是关于基于参与者的应用程序架构的另一篇文章。
通过应用程序跟踪消息路径
我们来看一段Java代码:
public void deleteTrades(User user, Date date) {
PermissionSet ps = permissionService.findPermissions(user)
if (ps.hasPermission("delete")) {
Set<Trade> ts = peristence.findTrades(date);
reportService.sendCancelReports(ts);
positionService.updateWithDeletedTrades(ts);
}
}
在这段代码中,我有 4 个独立的组件,并且过程 deleteTrades 所需的它们之间的交互是明确定义的。它完全包含在方法deleteTrades中。
使用Actors 对此进行建模并用 4 个单独的参与者替换我的 4 个组件,我如何(在我的脑海中)跟踪程序涉及的内容?特别是如果我避免使用 !? 运算符,那么我很可能会向我的PermissionActor 发送消息ConditionalDelete,这将向我的GetTradesAndDelete 发送消息我的PersistenceActor 然后将发送更多消息等。处理删除的代码将散布在我的应用程序中。
这也意味着几乎每个参与者都需要一个其他参与者的句柄(以便转发消息)。
在我之前的问题中,人们如何处理这个问题?是否有一个好的建模工具可以让您跟踪所有这些?人们是否使用 !? 我是否将太多组件转换为 Actors?
【问题讨论】: