0
第三方库为我提供了一个接口(这意味着我得到一个实现该接口的对象),我们称之为Config
。 在我的应用程序中,我需要通过我自己的界面提供的此对象的所有功能,以避免依赖于第三方库,我如何将Config
与MyConfig
包装在一起,并在我的应用程序中使用相同的对象?除此之外,它是尝试包装第三方库的正确方法吗?包装第三方接口,以避免依赖
第三方库为我提供了一个接口(这意味着我得到一个实现该接口的对象),我们称之为Config
。 在我的应用程序中,我需要通过我自己的界面提供的此对象的所有功能,以避免依赖于第三方库,我如何将Config
与MyConfig
包装在一起,并在我的应用程序中使用相同的对象?除此之外,它是尝试包装第三方库的正确方法吗?包装第三方接口,以避免依赖
您可以包装第三方库以避免编译时间依赖性,但第三方库必须在运行时存在。
最简单的方法是简单地有委托方法(集成开发环境可以自动创建这些):
public class DefaultMyConfig {
private Config delegate;
public MyConfig(Config delegate) {
this.delegate = delegate;
}
public String foo() {
return delegate.foo();
}
}
当然,你可以定义一个接口,同为Config
界面,然后执行它在DefaultMyConfig
,或者你只能留在一个班。
如果您仍然从该库中获取对象,如何避免依赖该库? – corsiKa 2011-12-14 21:38:46
认为它是你自己的框架,你想在新的应用程序中使用它,我希望我的框架绑定到库,但不是我的应用程序。 – davidmontoyago 2011-12-14 23:56:58