我正在开发的应用程序使用第三方服务进行客户验证。由于我们的客户可能使用不同的服务,我创建了一个通用接口,并希望稍后通过配置参数提供实际的实现。
我目前正在使用反射实例化该类:
Class<? extends Checker> _class = Class.forName(implementorName).asSubclass(Checker.class);
Constructor<? extends Checker> ctor = _class.getDeclaredConstructor(DatabaseSession.class);
cc = ctor.newInstance(db());
但是我读到由于性能下降,应该在生产中避免动态类加载。
我知道注入技术,但我不想仅仅为一个案例引入一个全新的框架(及其所有的装饰)。
有没有更好的方法来实现这一目标?