Ast*_*not 6 c++ design-patterns
我知道单例只允许一个对象的一个实例。单例中声明的每个方法都只会对该对象进行操作。我想知道为什么不简单地声明一个可以实现相同目标的全局对象?
我肯定忘记了什么。如果单例存在,则必须有特定的用途或有助于实现特定的机制。
例如:
class Singleton
{
public:
static Singleton& Instance()
{
static Singleton sg;
return sg;
}
void function();
};
Run Code Online (Sandbox Code Playgroud)
将与以下相同:
class NotSingleton
{
public:
NotSingleon();
~NotSingleton()
void function();
};
NotSingleton nsg;
Run Code Online (Sandbox Code Playgroud)
但是,没有什么可以阻止我使用多个实例NotSingleton
当我们不想创建多个对象时,可以使用 Singleton。Singleton 类确保创建的对象不超过一个。然而,拥有一个全局对象并不能保证这一点。
class Singleton {
public static Singleton object = null;
public void singleton() {
if (object == null)
object = new Singleton();
return object;
}
}
Run Code Online (Sandbox Code Playgroud)
该类不会创建多个对象。这就是 Singleton 类的目的。
| 归档时间: |
|
| 查看次数: |
9595 次 |
| 最近记录: |