从其他(未知)松耦合模块请求信息

时间:2015-02-13 08:16:52

标签: java-ee jms

假设我构建了一个Java EE应用程序,它包含两个模块:

  • 客户模块(使用地址模块,客户可以有多个地址,多个客户可以共享地址)
  • 地址模块(不知道客户模块)

每当一个地址应该被“地址模块”删除时,我想给依赖模块(例如“客户模块”,但可以有多个依赖模块),可以说明地址在使用中(因此不能删除)或做一些其他的东西,以允许删除地址。

我想到的解决方案:

  1. 使“地址模块”依赖于“客户模块”和其他使用地址的模块(不想这样做/创建循环依赖)
  2. 在“地址模块”(例如AddressDeleteListener)中创建一个接口,让所有使用“地址模块”的模块实现此接口并使用“地址模块”注册其实现
  3. 创建一个接口(如2.)并使用CDI
  4. 获取此接口的所有实现

    我觉得我应该选择第二种解决方案,因为它是松散耦合的,没有任何魔法。在C ++中,我会选择这种方法。但是,我对Java EE相对较新,并且还没有完整概述它提供的许多不同的API。

    我读到了Java Messaging Services(JMS),并认为这可能是我可以用于解决手头问题的API。但我不完全确定。这就是我问专家的原因:

    您如何实现上述场景中的功能?

0 个答案:

没有答案