什么是动态加载jar时应用的最佳模式

时间:2014-06-16 08:50:06

标签: java jar

我有n个具有相同功能但包装名称不同的罐子(因为不同的区域)。    我使用这个n罐进行相同的操作。

现在我想为我的操作加载相应的jar区域。在这种情况下使用的最佳设计模式是什么。

我通过更改包名称和动态加载来尝试反射。但是,这种情况有没有最好的模式?

2 个答案:

答案 0 :(得分:0)

由于您的不同实施方案具有不同的包装名称,因此它们位于不同的罐子中并不重要。只需使用工厂模式。

答案 1 :(得分:0)

你会分开发行吗?如果不是,您不需要动态加载罐子或反映它们。

您的应用可以引用所有广告罐。以下是您可能拥有的依赖项:

|Application Jar                   |
   ↓          ↓            ↓
   ↓   |Region 1 Jar| |Region 2 Jar|
   ↓          ↓            ↓
|Core Jar                          |

Core Jar与区域无关,但有一个或多个接口可满足区域的要求。 Region jars具有实现这些核心接口的类,Application jar负责构造正确的区域类并将它们全部插入。

如果Regions不在您的控制之下,并且他们不能依赖Core或实现它的接口,您可以使用适配器:

|Application Jar                                   |
   ↓              ↓                  ↓
   ↓   |Region 1 Jar Adapter| |Region 2 Jar Adapter|
   ↓    ↓         ↓                  ↓
|Core Jar |       ↓                  ↓
             |Region 1 Jar|   |Region 2 Jar|

此处Region 1Region 2是您喜欢的,它们没有依赖关系。只有一个包依赖于它们,这就是它的适配器包。适配器支持核心接口,并知道如何将调用转换为基础Region Jar。该申请与以前的情况相同。