设为首页 加入收藏

TOP

单件模式的C++实现
2014-03-10 12:53:58 来源: 作者: 【 】 浏览:104
Tags:单件 模式 实现

  单件模式是一种用于确保整个应用程序中只有一个类实例且这个实例所占资源在整个应用程序中是共享时的程序设计方法(根据实际情况,可能需要几个类实例)。在某些情况下,这种程序设计方法是很有用处的。

  Singleton模式的实现基于两个要点:

  1)不直接用类的构造函数,而另外提供一个Public的静态方法来构造类的实例。通常这个方法取名为Instance.Public保证了它的全局可见性,静态方法保证了不会创建出多余的实例。

  2)将类的构造函数设为Private,即将构造函数"隐藏"起来,任何企图使用构造函数创建实例的方法都将报错。这样就阻止了开发人员绕过上面的Instance方法直接创建类的实例。

  #include <iostream>

  #include <cassert>

  using namespace std;

  template<typename T>

  class Singleton

  {

  public:

  static T *getInstancePtr()

  {

  if (m_Instance == NULL) {

  m_Instance = new T;

  }

  return m_Instance;

  }

  static T& getInstance()

  {

  assert(m_Instance);

  return (*m_Instance);

  }

  private:

  Singleton(){};

  static T *m_Instance;

  };

  template<typename T> T * Singleton<T>::m_Instance = NULL;

  class A

  {

  public:

  void display(){cout《"A is display"《endl;}

  };

  int main()

  {

  /*Singleton<int>::getInstancePtr();

  cout《Singleton<int>::getInstance()《endl;

  Singleton<int>::getInstance()=5;

  cout《Singleton<int>::getInstance()《endl;*/

  A* p=Singleton<A>::getInstancePtr();

  p->display();

  return 0;

  }

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇C++ 类模板 下一篇C++中的纯虚函数

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·Libevent C++ 高并发 (2025-12-26 00:49:30)
·C++ dll 设计接口时 (2025-12-26 00:49:28)
·透彻理解 C 语言指针 (2025-12-26 00:22:52)
·C语言指针详解 (经典 (2025-12-26 00:22:49)
·C 指针 | 菜鸟教程 (2025-12-26 00:22:46)