singleton 单件模式的实现
2011-04-29 12:07
369 查看
Singleton模式其实是对全局静态变量的一个取代策略,上面提到的Singleton模式的两个作用在C++中是通过如下的机制实现的:1)仅有一个实例,提供一个类的静态成员变量,大家知道类的静态成员变量对于一个类的所有对象而言是惟一的 2)提供一个访问它的全局访问点,也就是提供对应的访问这个静态成员变量的静态成员函数,对类的所有对象而言也是惟一的。在C++中,可以直接使用类域进行访问而不必初始化一个类的对象。
#include "stdafx.h" #include <iostream> using namespace std; class singleton{ public: static singleton * get_instance_ptr(); static singleton get_instance(); void print(); private: singleton(){} ~singleton(){} static singleton * instance_ptr; }; singleton * singleton::instance_ptr=NULL; //类得静态成员变量要在类体外进行定义,定义时不能再加static描述符 singleton* singleton::get_instance_ptr(){//类外实现 if(!instance_ptr) instance_ptr=new singleton(); return instance_ptr; } singleton singleton::get_instance(){ singleton *instance_ptr=get_instance_ptr(); return * instance_ptr; } void singleton::print(){//测试程序 cout<<"nihao"<<endl; } int main(){ singleton::get_instance_ptr()->print(); return 0; }
相关文章推荐
- 【剑指offer】题2:实现单件(singleton)模式
- Head First设计模式 C++实现-Singleton(单件模式)
- Singleton(单件)模式的两种实现方法
- 单实例模式的实现(singleton)----单件
- 【读书笔记】HeadFirst设计模式——单件不简单:详述实现Singleton模式需要考虑的方方面面
- 单件模式在C#中的实现--Implementing the Singleton Pattern in C#
- 五种单件模式之Singleton的实现方法详解
- 四种方法实现单件(Singleton)模式
- Head First设计模式C++实现--第五章:单件(Singleton)模式
- 基于私有化构造器与析构器的单件模式(singleton) 实现及注释
- 多线程安全的Singleton单件模式在C++,java与C#下的实现
- ISingletonDisplayer 单件模式显示器C#实现
- PHP 实现单件(singleton)模式
- 带注册功能的单件(Singleton)模式的C++实现
- [MyBean-说明书]关于插件的单件模式(singleton),插件的共享模式
- 温故而知新:设计模式之单件模式(Singleton)
- 单件模式(singleton)
- Singleton:单件模式
- singleton设计模式,c++实现
- objective-c中的Singleton单例模式的完整实现示例