Singleton 模式是设计模式中较为简单及常见,且容易实现的一种设计模式。
Singleton 模式可以实现在面向对象程序设计中创建唯一的对象。在面向过程程序设计中,我们可以通过创建全局变量实现对象的唯一性。
但在纯面向对象中,我们应该只能用Singleton 模式来实现。
图例:
在Singleton对象中包含了一个Singleton 指针类型静态成员instance(Singleton * instance)及一个返回类型为Singleton 的静态函数Instance。
Singleton 是为了创建一个唯一的对象的类,所以应该把它的构造函数放在 protected 或 private 区。
在Instance函数中创建一个Singleton 类来返回给 instance 成员(这里可以初始化instance指向空值,若在函数Instance内判断instance
指向空值成立则执行instance = new Singleton(),若不成立则直接返回instance,提供以下实例代码)。
Singleton * Singleton::Instance()
{
if(instance == NULL) {
instance = new Singleton()
}
return instance;
}
一般而言,Singleton 模式多与AbstractFactory 模式一起使用。