访问远程类方法以解决循环依赖性

时间:2018-08-23 02:33:48

标签: java scala maven design-patterns akka

cyclic Dependency 我正在与多模块Maven项目一起工作,在那里我面临着driver(module A) and actors(module B)

之间的循环依赖关系。
  

Actors模块有一个共同的actor系统创建,应该是   项目中所有演员的共同点

驱动程序使用 ActorSystem 为某些客户端API调用创建 ActorRef ,因此存在Module B on Module A的相关性。 另外Actor A调用驱动程序类的方法,该方法需要Module A on Module B.

的依赖项
  

因此,结果证明是模块A需要模块B的循环依赖关系   反之亦然

我一直在寻找可以消除模块A对B的依赖的解决方案,因为我希望模块B不依赖于任何模块。 如果可以通过任何方式间接访问驱动程序类中的方法,这可能有助于消除循环依赖的原因。

1 个答案:

答案 0 :(得分:0)

问题出在您的设计上。如果您可以重新设计软件,以便将要在两个模块(A和B)中使用的通用对象放在一个不同的模块中,那就更好了,例如COMMON MODULE。然后,您要做的就是将该通用模块依赖项添加到模块A和B中,以便可以在两个模块中使用通用功能。 对于您提出的问题,“是否可以通过任何方式间接访问驱动程序类中的方法,从而有助于消除循环依赖的原因。”不,您不能直接做到这一点,如果您正在考虑做这样的事情,那应该就像服务通信一样。然后,它将再次添加我们不需要的不必要的网络跃点。因此,最好的办法是重新设计软件并消除循环依赖性。