提供C ++ Singleton类库但在库外提供instance()方法是否可以接受

时间:2019-02-12 10:33:22

标签: c++ static singleton

我有一个名为SingletonDemo的类库,但是我选择在该库外部提供静态访问方法SingletonDemo :: GetInstance(),因此,当我为生产构建代码时,我想要一个版本的Getinstance(),而当我进行单元测试时,我想要另一个版本。

1 个答案:

答案 0 :(得分:0)

您不会为此使用预编译器指令吗? 似乎更具可维护性和可读性...

#ifdef unit_test
    //unit test implementation
#else
    // normal implementation...
#endif

因此您可以在实现之间自动切换。

但是您可能会考虑不这样做...导致行为从测试代码转移到发行版。