2011-12-14 93 views
0

第三方库为我提供了一个接口(这意味着我得到一个实现该接口的对象),我们称之为Config。 在我的应用程序中,我需要通过我自己的界面提供的此对象的所有功能,以避免依赖于第三方库,我如何将ConfigMyConfig包装在一起,并在我的应用程序中使用相同的对象?除此之外,它是尝试包装第三方库的正确方法吗?包装第三方接口,以避免依赖

+1

如果您仍然从该库中获取对象,如何避免依赖该库? – corsiKa 2011-12-14 21:38:46

+0

认为它是你自己的框架,你想在新的应用程序中使用它,我希望我的框架绑定到库,但不是我的应用程序。 – davidmontoyago 2011-12-14 23:56:58

回答

1

您可以包装第三方库以避免编译时间依赖性,但第三方库必须在运行时存在。

最简单的方法是简单地有委托方法(集成开发环境可以自动创建这些):

public class DefaultMyConfig { 
    private Config delegate; 
    public MyConfig(Config delegate) { 
     this.delegate = delegate; 
    } 
    public String foo() { 
     return delegate.foo(); 
    } 
} 

当然,你可以定义一个接口,同为Config界面,然后执行它在DefaultMyConfig,或者你只能留在一个班。