2014-02-20 2 views
0

Я занимаюсь реорганизацией фреймворка, и я мог бы использовать некоторые рекомендации для дизайна. Рассмотрим следующий пример:C++: Статические библиотеки, ссылающиеся на статические библиотеки

gl_utils.lib содержит:-структуру

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

однако animation_utils.lib содержит объект с использованием структуры в другой статической библиотеки:

#include "gl_utils.h" 
using namespace gl_utils; 

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

     Part(); 
}; 

Это плохая идея ? Есть ли безопасный способ создания библиотек друг на друге, или есть техника, которую я пропускаю?

+0

Выглядит хорошо для меня .... есть ли какая-то конкретная проблема, с которой вы сталкиваетесь, или вы просто преследуете «шаблоны проектирования»? –

ответ

1

Это прекрасно. Вы должны документировать его, так как окончательная исполняемая или разделяемая библиотека должна будет связываться с обе статическими библиотеками.

Если вы не хотите вводить зависимость от gl_utils для animation_utils, вы можете представить основную библиотеку, например, для хранения структуры LVec2 (и, возможно, других типов), поскольку она не связана исключительно с gl.

Вам все равно придется ссылаться на основную библиотеку, но это может сделать архитектуру еще более модульной.