【发布时间】:2010-10-01 18:08:51
【问题描述】:
我已经看到了单例模式的实现,其中实例变量在 GetInstance 方法中被声明为静态变量。像这样:
SomeBaseClass &SomeClass::GetInstance()
{
static SomeClass instance;
return instance;
}
我看到了这种方法的以下积极方面:
- 代码更简单,因为只有在第一次调用 GetInstance 时,编译器才负责创建这个对象。
- 代码更安全,因为没有其他方法可以获取对实例的引用,而是使用 GetInstance 方法,并且没有其他方法可以更改实例,而是在 GetInstance 方法中。
这种方法有哪些负面影响(除了这不是非常面向 OOP)?这是线程安全的吗?
【问题讨论】:
标签: c++ design-patterns singleton