ElliottZC

  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  11 随笔 :: 0 文章 :: 0 评论 :: 0 Trackbacks
Instance静态成员函数提供类操作的全局访问点。静态成员变量_instance用于保存一个指向它的唯一实例的指针。
Singleton类定义如下:
class Singleton
{
public:
       static  Singleton  *  Instance ();
protected:
       Singleton();
private:
       static  Singleton  *  _instance;
};
 
实现如下:
Singleton  *  Singleton :: _instance = 0;
Singleton  *  Singleton :: Instance()
{
       if (_instance == 0)
       {
              _instance = new Singleton ();
       }
       return  _instance;
}
 客户仅通过Singleton::Instance函数访问这个单件。变量_instance初始化为0,而静态成员函数Instance返回该变量值,如果其值为0,则用唯一实例初始化它。Instance使用惰性(Lazy)初始化;它的返回值直到第一次访问时才被创建和保存。另为,注意Singleton类的构造函数是保护型的(protected),试图直接实例化Singleton类的客户将得到一个编译时的错误信息。这就保证了仅有一个实例可以被创建。
posted on 2007-07-20 11:34 ElliottZC 阅读(649) 评论(0)  编辑 收藏 引用 所属分类: C++