第三方库为我提供了一个接口(这意味着我得到了一个实现该接口的对象),我们称之为Config
。
在我的应用程序中,我需要通过我自己的接口提供此对象提供的所有功能,以避免它依赖于第三方库,如何使用Config
包装MyConfig
并只使用相同的对象我的应用?除了是尝试包装第三方库的正确方法吗?
答案 0 :(得分:1)
您可以包装第三方库以避免编译时依赖性,但第三方库必须在运行时存在。
最简单的方法是简单地使用委托方法(IDE可以自动创建这些方法):
public class DefaultMyConfig {
private Config delegate;
public MyConfig(Config delegate) {
this.delegate = delegate;
}
public String foo() {
return delegate.foo();
}
}
当然,您可以定义一个与Config
界面相同的界面,然后在DefaultMyConfig
中实现它,或者您可以只使用一个类。