我知道单例只允许一个对象的实例。在单例中声明的每个方法只能在此对象上操作。 我想知道为什么不简单地声明一个将实现相同目标的全局对象?
我当然忘了什么。如果存在单身人士,必须有特定用途或帮助实现特定机制。
例如:
class Singleton
{
public:
static Singleton& Instance()
{
static Singleton sg;
return sg;
}
void function();
};
与:
相同class NotSingleton
{
public:
NotSingleon();
~NotSingleton()
void function();
};
NotSingleton nsg;
但是,没有什么能阻止我使用多个NotSingleton
的实例
答案 0 :(得分:3)
当我们不想创建多个对象时使用Singleton。 Singleton类确保创建的对象不超过一个。但是,拥有全局对象并不能确保这一点。
Class Singleton{
public static Singleton object==null;
public void singleton(){
if(object==null)
object = new Singleton();
return object;
}
}
此类不会创建多个对象。这是Singleton类的目的。