我有一个服务层,我的PredictionService需要知道某个Race是否存在。 RaceService有一个方法DoesRaceExist()
,但我不确定服务是否可以通信。
这也引出了一些其他问题。假设我有一个Predictions.aspx
页面。我使用MVP实现,因此当首次请求页面时,演示者中的Initialize()
方法运行。 Predictions.aspx
需要多条信息,包括预测和比赛,甚至可能更多。我应该从他们适当的服务中询问所有这些部分,还是应该只查询一次数据库并一次性获取我需要的所有信息?问题在于选择哪个服务,然后服务可能不仅仅是转发它的目的。
最好的方法是什么?
答案 0 :(得分:8)
如果serviceA需要获取数据或在serviceB上运行操作,可以从serviceA调用serviceB。
然而,您可能会发现自己处于服务中相互呼叫的情况 - 如果发生这种情况,请考虑使用facade来协调不同的服务(因此他们不会直接相互呼叫) )。