2014-10-26 62 views
0

我有两个束A和B,与启动时的如图4和作为5.OSGI束可能性

有一个在束A中的库,它是在-需要类的在束B中。

Bundle B依赖于Bundle A,[Bundle B在启动Bundle A后开始] 所以我不能使bundle B对A有依赖性,它变得紧密耦合,所以有没有办法我可以在Bundle A中使用捆绑包B中的类而不添加为依赖捆绑包。

即使当我在Bundle A中导入Bundle B的包时,它显示为紧密耦合。

家伙给我一些解决方案...

回答

0

它的时间来重构你的代码。根据您提供的信息,您至少应该创建包C,其中包含从捆绑包A和捆绑包B使用的类。

通常情况下,捆绑包被拆分为多个捆绑包,事实证明逻辑在该捆绑应该实施在多个捆绑。

API和实现应该总是分离到不同的包。我猜你的软件包都包含API和实现。

如果您因使用工厂而需要圆形布线,请按照将API分离到不同捆绑包并基于API的方式重构代码,实施捆绑包会提供OSGi服务。

+0

它不是API/Implementation bundle,该bundle有一个特定于业务逻辑的bean类...所以我不能将该类移动到捆绑C,如果我这样做,那么我需要有数字基于用例的第三个bundle。 – Harry 2014-10-27 03:22:29