Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Architecture 服务层中的服务可以相互通信吗?_Architecture_C# 4.0 - Fatal编程技术网

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

Architecture 服务层中的服务可以相互通信吗?,architecture,c#-4.0,Architecture,C# 4.0,我有一个服务层,我的PredictionService需要知道是否存在某个种族。Race服务有一个方法DoesRaceExist(),但我不确定这些服务是否可以通信 这也导致了其他一些问题。假设我有一个Predictions.aspx页面。我使用MVP实现,因此当第一次请求页面时,presenter中的Initialize()方法将运行。Predictions.aspx需要来自预测和比赛的多条信息,甚至可能更多。我是应该向他们的相关服务部门询问所有这些信息,还是应该只查询一次数据库,然后一次性获

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

这也导致了其他一些问题。假设我有一个
Predictions.aspx
页面。我使用MVP实现,因此当第一次请求页面时,presenter中的
Initialize()
方法将运行。
Predictions.aspx
需要来自预测和比赛的多条信息,甚至可能更多。我是应该向他们的相关服务部门询问所有这些信息,还是应该只查询一次数据库,然后一次性获得我需要的所有信息?问题是选择哪个服务,然后该服务可能不仅仅是传递它的目的


最好的方法是什么?

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


你可能会发现你自己处在一个服务互相调用的情况下——如果发生这种情况,考虑使用一个编排不同的服务(这样他们就不会直接呼叫对方)。我仔细看了一下我的预测演示者,发现我在预测服务旁边使用了另外两种不同的服务{Driver,Race}。我想了想你说的话,认为拥有一个facade/macro服务确实是个好主意。