2010-11-23 4 views
2

해당 솔루션이 적용되는 프로젝트를 상속했습니다.타사 라이브러리의 다른 버전을위한 유틸리티 디자인

타사 라이브러리에는 5 가지 버전이 있습니다. 그리고 타사 라이브러리의 해당 버전을위한 유틸리티가 포함 된 5 개의 프로젝트가 있습니다.

솔루션의 상당수 유틸리티 클래스는 타사 라이브러리의 모든 버전에 대해 동일한 코드를 사용합니다. 중복 문제는 이와 같은 방법으로 해결됩니다. 모든 프로젝트에서 동일해야하는 코드 파일은 공통 폴더에 저장되고 모든 프로젝트에 대한 링크로 추가됩니다.

코드 공유 링크를 사용하는 것이 가장 좋은 방법이라고 생각하지 않습니다. 나쁜 접근 방식이 맞는지 말해 줄 수 있습니까? 그렇다면 그 코드 중복을 해결할 올바른 방법이 무엇인지 말해주십시오.

미리 감사드립니다.

답변

1

이것이 '불량'인지 여부는 상당히 주관적입니다.

이유가 있어도 링크 된 코드 파일이 가능합니다. 여러 프로젝트간에 이러한 파일을 공유해야하는 경우가 있습니다.

제 3 자 라이브러리가 버전간에 얼마나 다른가에 따라 이러한 차이점을 처리하고이를 분리하는 래퍼 코드를 작성할 수 있습니다.

+0

필자는 래퍼 작성에 대해 생각했지만 다음 두 가지 이유로 내 경우에는 적용 할 수 없습니다. 1. API가 상당히 (수백 개의 클래스) 크고 작성 래퍼가 사소하지 않습니다. 2. 래퍼 클래스 작성은 래퍼에 대한 복제 문제를 옮깁니다. – ika

+0

아마도 템플릿 하나 또는 두 개를 사용하여 대부분을 자동화하고 인터페이스를 생성 한 다음 라이브러리 버전에 따라 필요한 래퍼 구현을 시작하면됩니다. 그러나 그렇습니다. 그렇게하기에 여전히 상당한 양의 일이 있습니다. –

관련 문제