c++ - 外部库应该被包装吗?

标签 c++ coding-style

我一直在使用两个库,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/

相关文章:

c++ - 为什么初始化列表中的元素数量会导致模棱两可的调用错误?

c++ - C/C++ 中的可移植无符号长整型

C++ 模板复制构造函数,编译器说 "passing const as this argument discards qualifiers"

c++ - 如何在 CvPoint 和 int 结构上应用 std::sort 和 std::erase?

c++ - 预编译头来自以前版本的编译器

c++ - 基类作为属性

javascript - 如何以某种格式显示代码但以另一种格式提交?

Java 比较字符串

c# - 在 C# 中使用 if (!bool) 与 if (bool == false)

coding-style - 什么时候是快速而肮脏的解决方案的正确时间和错误时间?