2014-02-20 3 views
0

프레임 워크를 리팩터링하는 중입니다. 디자인에 대한 조언을 사용할 수 있습니다. 다음 사항을 고려하십시오 :이 나쁜 생각C++ : 정적 라이브러리를 참조하는 정적 라이브러리

#include "gl_utils.h" 
using namespace gl_utils; 

class Part 
{ 
    public: 
     LVec2 Location; 
     float Rotation; 
     LVec2 Scaling; 
     int Index; 
     int Flip; 

     Part(); 
}; 

:

namespace gl_utils 
{ 
    struct LVec2 
    { 
     GLfloat x; 
     GLfloat y; 
     LVec2() {} 
     LVec2(GLfloat x, GLfloat y): x(x), y(y) {} 
    }; 
} 

그러나 animation_utils.lib 다른 정적 라이브러리에서 구조체를 사용하여 객체를 포함

gl_utils.lib는 구조체를 포함 ? 서로간에 라이브러리를 구축 할 수있는 안전한 방법이 있습니까? 아니면 내가 간과하고있는 기술이 있습니까?

+0

나에게 잘 어울립니다 .... 특정 문제가 있습니까? 아니면 디자인 패턴을 쫓고 있습니까? –

답변

1

괜찮습니다. 그러나 최종 실행 파일 또는 공유 라이브러리가 정적 라이브러리와 링크해야하므로 문서화해야합니다.

animation_utils에 대한 gl_utils에 대한 의존성을 도입하고 싶지 않은 경우 LVec2 (및 기타 유형) 구조체를 독점적으로 gl 관련이 아닌 구조로 유지하는 것과 같은 핵심 라이브러리를 도입 할 수 있습니다.

그래도 코어 라이브러리에 연결해야하지만 아키텍처가 훨씬 모듈화 될 수 있습니다.

관련 문제