2011-12-14 2 views
0

제 3 자 라이브러리에서 Interface (이 인터페이스를 구현하는 객체를 얻는다는 의미입니다)를 제공하며, Config이라고 부르 자. 내 응용 프로그램에서는 제 3 자 라이브러리에 대한 의존성을 피하기 위해이 인터페이스가 제공하는 모든 기능이 필요합니다. MyConfig을 사용하여 Config을 어떻게 포장하고 내 응용 프로그램에서 동일한 객체를 사용할 수 있습니까? 게다가 제 3 자 라이브러리를 포장하려고하는 올바른 접근법입니까?종속성을 피하기 위해 타사 인터페이스 랩

+1

라이브러리에서 개체를 계속 가져 오는 경우 어떻게 해당 라이브러리에 대한 종속성을 피할 수 있습니까? – corsiKa

+0

자신의 프레임 워크로 생각하고 새로운 애플 리케이션에서 그것을 사용하려면, 내 프레임 워크가 도서관에 묶여 있지만 내 애플 리케이션이 아니길 바래. – davidmontoyago

답변

1

컴파일 타임 의존성을 피하기 위해 제 3 자 라이브러리를 래핑 할 수 있지만 런타임에 제 3 자 라이브러리가 있어야합니다. 그것을 구현 다음은 Config 인터페이스와 동일한 인터페이스를 정의 할 수 있습니다, 물론

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

및 :

가장 쉬운 방법은 간단하게 방법을 위임해야하는 것 (IDE에서 자동으로 다음을 만들 수 있습니다) DefaultMyConfig 또는 수업에만 머물 수 있습니다.

+0

답을 이해하지 못합니다. 타사 라이브러리를 런타임에 어떻게 사용할 수 있습니까? – bragboy

+0

앱에서 라이브러리를 래핑하고 자신의 인터페이스를 통해 애플리케이션의 나머지 부분에 공개하는 하나의 클래스를 가질 수 있습니다 – Bozho

관련 문제