OOPS 设计模式,以避免对大小更改的二进制依赖
OOPS design pattern to avoid binary dependency on size change
Sample
class A
{
public:
int i;
}; // A.h and defined in project libA.vcxproj (libA.dll)
现在我在各种项目的多个地方使用 A 类,如下所示。Apporox 100个项目。
#include "A.h"
class UseA
{
public:
A *a;
UseA(){
a = new A();
}
~UseA() {delete a;}
}
我的问题是每当我将成员变量添加到类 A 时,我都必须构建所有项目 (~100),因为类 A 的大小已更改并且构建 100 个项目非常耗时。
我想知道是否有一种设计模式可以避免在单个类的大小更改上构建如此多的项目。我也有很多类,如libA.vcxproj中定义的A类。
您可以使用痘痘成语成语。类似的东西
class A
{
public:
A();
~A();
int get() const;
private:
class impl;
std::unique_ptr<impl> impl_;
};
// in a.cpp
class A::impl
{
public:
int i;
};
A::A() : impl_(new impl())
{
}
A::~A() {}
int A::get() const { return impl_->i; }
相关文章:
- 将成员变量添加到共享库中的类中,不会破坏二进制兼容性吗
- 如何从C++中的依赖类型中获得它所依赖的类型
- 有根的二进制搜索树.保留与其父级的链接
- 多态二进制函数
- 对在不同二进制文件中创建的对象文件的依赖关系
- 链接二进制库或共享库时,为什么必须传入我依赖的共享库?
- 如何在 windowsservercore Docker 映像上安装执行本机C++ DLL/EXE 所需的所有依赖二进制
- 在 NDK 上编译两个带有 gradle 的项目,其中一个依赖于另一个的二进制文件
- 如何将所有依赖项和共享库编译为一个二进制文件
- 如何在二进制文件中包含共享库依赖项(不使用.deb或.rpm)和/或针对PulseAudio的静态链接
- 如何设置二进制文件所依赖的 DLL 的名称
- OOPS 设计模式,以避免对大小更改的二进制依赖
- 生成文件:自动生成二进制文件的依赖项
- 生成一个没有 dll 依赖项的C++二进制文件
- 从Windows二进制文件中删除msvcp90d.dll依赖
- 人们如何分发对boost模块有二进制依赖的boost程序
- CMake从Ubuntu为RedHat EL6构建了一个独立的二进制文件,其中包含依赖的共享库
- 将依赖项添加到库中,并将它们添加到依赖于该库的二进制文件中
- 如何制作不依赖于 .so 文件的可执行二进制文件
- 在Netbeans中没有链接的依赖c++项目二进制文件