我一直在使用两个库,SFML 和 Box2D,同时非常努力地确保它们的函数或类都没有暴露在我的代码主体中,将它们隐藏在仅用于充当我的代码和库本身之间的调解人。我的调解员采用以下形式:
class MyWindow{
public:
// could be 10 or so functions like below
int doSomething(int arg){
return library_window->doSomething(arg);
};
private:
library::window * library_window;
};
这样做的好处,至少我被告知的是,我的主要代码主体不依赖于库,如果它发生变化或者我选择使用不同的库,比如 SDL 或OpenGL 代替 SFML 或其他东西,我可以通过仅修改中介类来切换。但是必须将访问点编码到我想使用的每个功能中的痛苦是痛苦和重复的......
专业程序员真的应该这样对待外部库吗?值得吗?
我这样做对吗?
最佳答案
不值得。只需使用库。如果您最终想要更改为不同的第三方库,那么您最终还是需要更改您的应用程序代码……否则,如果两个版本的一切都一样,那么首先更改的重点是什么无论如何。
friend 不要让 friend 过度设计。就说不。
关于c++ - 外部库应该被包装吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7265506/