服务层中的服务可以相互通信吗?

时间:2011-04-23 14:50:13

标签: architecture c#-4.0

我有一个服务层,我的PredictionService需要知道某个Race是否存在。 RaceService有一个方法DoesRaceExist(),但我不确定服务是否可以通信。

这也引出了一些其他问题。假设我有一个Predictions.aspx页面。我使用MVP实现,因此当首次请求页面时,演示者中的Initialize()方法运行。 Predictions.aspx需要多条信息,包括预测和比赛,甚至可能更多。我应该从他们适当的服务中询问所有这些部分,还是应该只查询一次数据库并一次性获取我需要的所有信息?问题在于选择哪个服务,然后服务可能不仅仅是转发它的目的。

最好的方法是什么?

1 个答案:

答案 0 :(得分:8)

如果serviceA需要获取数据或在serviceB上运行操作,可以从serviceA调用serviceB。

然而,您可能会发现自己处于服务中相互呼叫的情况 - 如果发生这种情况,请考虑使用facade来协调不同的服务(因此他们不会直接相互呼叫) )。