Design Pattern: Singleton

805阅读 0评论2009-02-20 finalguy
分类:

Singleton is probably the most widely used design pattern. Its intent is to ensure that a class has only one instance, and to provide a global point of access to it. 

To use it:

Singleton *p1 = Singleton::Instance();
Singleton *p2 = p1->Instance();
Singleton & ref = * Singleton::Instance();

class Singleton   {

  public:
  static Singleton* Instance();
  protected:
  Singleton();
  Singleton(const Singleton&);
  Singleton& operator= (const Singleton&);
  private:
  static Singleton* pinstance;
  };


Singleton* Singleton::pinstance = 0;// initialize pointer
 

Singleton* Singleton::Instance () 
  {
  if (pinstance == 0) // is it the first call?
  {  
  pinstance = new Singleton; // create sole instance
  }

  return pinstance; // address of sole instance
  }
  Singleton::Singleton() 
  { 
  //... perform necessary instance initializations 
  }

上一篇:Linux中的输入输出重定向
下一篇:Design Pattern: Prototype