确保单个实例但不是C ++全局的最佳方法

时间:2017-02-09 16:08:56

标签: c++ design-patterns embedded

我正在开发一个控制网络适配器的类,我需要确保只有这个类的一个实例。全局访问并不是必需的,因为此类仅供执行网络操作的客户端使用,因此我认为单例模式不是这种情况。

目前我的工厂有一个netAdapter的静态实例,但我不确定这是一个很好的解决方案。

最好的方法是什么,避免可测性问题?

编辑:我有多个适配器(wifi,以太网,2G / 3G / 4G),但我只能有一个实例。

1 个答案:

答案 0 :(得分:3)

  

我需要确保这个类只有一个实例。

     

...所以我认为单身人士模式并非如此。

将类限制为单个实例是单例模式的定义。

  

这样做的最佳方法是什么,避免可测性问题?

如果将类限制为单个实例,我认为不能避免可测性问题。最好的方法可能是忘记这样的要求。

  

无需全局访问

然后我建议一个本地静态变量:

void function_that_needs_a_single_instance_ever() {
    static singleton_class instance;
    // do something with your singleton
}