在OSGI捆绑包中包含UI并在其他捆绑包中重用此UI时,是否有最佳做法?
例如,我有一个自定义组件树,其中每个组件都扩展了IComponent。例如,库存字段:InventoryField extends BaseInventoryField
BaseInventoryField extends GridField
GridField extends BaseComponent
BaseComponent implements IComponent
这样我就可以防止代码重复,如果我不这样做,我必须将来自BaseComponent,GridField和BaseInventoryField的代码放在InventoryField类中。当事情发生变化并且你有很多组件时,这会产生大量的维护和代码重复。
我知道不应该从另一个包扩展类(eclipse给我"不是API"警告)。但我无法将所有内容放在一个捆绑包中,因为其他捆绑包必须能够创建GUI(无需重新创建捆绑中的整个组件树)。
这种问题有解决方案吗?