0

我正在开发的应用程序使用第三方服务进行客户验证。由于我们的客户可能使用不同的服务,我创建了一个通用接口,并希望稍后通过配置参数提供实际的实现。

我目前正在使用反射实例化该类:

Class<? extends Checker> _class = Class.forName(implementorName).asSubclass(Checker.class);
Constructor<? extends Checker> ctor = _class.getDeclaredConstructor(DatabaseSession.class);
cc = ctor.newInstance(db());

但是我读到由于性能下降,应该在生产中避免动态类加载。

我知道注入技术,但我不想仅仅为一个案例引入一个全新的框架(及其所有的装饰)。

有没有更好的方法来实现这一目标?

4

1 回答 1

0

您是否考虑过只为不同的客户提供不同的罐子?该 jar 将包含该客户对通用接口的实现 + 必要的工厂方法。

这有点像驱动程序,例如打印机驱动程序。对于每个客户,您基本上都会有一个“客户驱动程序”。

于 2015-10-30T09:14:06.807 回答