包装第三方接口以避免依赖

时间:2011-12-14 21:35:15

标签: java interface

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

1 个答案:

答案 0 :(得分:1)

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

最简单的方法是简单地使用委托方法(IDE可以自动创建这些方法):

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

当然,您可以定义一个与Config界面相同的界面,然后在DefaultMyConfig中实现它,或者您可以只使用一个类。