单例模式(Singleton)-设计模式(五)
来源:互联网 发布:网络猫有什么用处 编辑:程序博客网 时间:2024/05/22 17:22
单例模式我觉得就是唯一性,个人认为 Singleton 模式是设计模式中最为简单、最为常见、最容易实现,也是最应该熟悉和掌握的模式。
作用:保证一个类仅有一个实例, 并提供一个访问它的全局访问点。
解析:
Singleton 模式其实是对全局静态变量的一个取代策略,上面提到的Singleton 模式的两个作用在 C++中是通过如下的机制实现的:
1)仅有一个实例,提供一个类的静态成员变量,大家知道类的静态成员变量对于一个类的所有对象而言是惟一的
2)提供一个访问它的全局访问点,也就是提供对应的访问这个静态成员变量的静态成员函数,对类的所有对象而言也是惟一的.在 C++中, 可以直接使用类域进行访问而不必初始化一个类的对象.
Singleton 模式需要说明的是,Singleton 不可以被实例化,因此我们将其构造函数声明为 protected或者直接声明为 private。
如果一个项目中用到的singleton模式较多的话,一般会定义一个模板:
Template <typename T>class Singleon{ //类的声明和实现}//需要用到Singleton的类class Test :public Singleton<Test>{ //类的声明}
个人觉得Singleton模式的实现很简单,看个简单的实现吧。
#include<iostream>using namespace std;class Singleton{ public: static Singleton* Instance() { if(_instance == 0) { _instance = new Singleton(); } return _instance; } protected: Singleton() { cout<<"Singleton..."<<endl; } private: //静态成员变量,提供全局唯一的一个实例 static Singleton* _instance;};//类的静态成员变量要在类体外进行定义Singleton* Singleton::_instance = 0;int main(){ Singleton* sgn = Singleton::Instance(); return 0;}
0 0
- 设计模式(五) 单例模式(Singleton)
- 单例模式(Singleton)-设计模式(五)
- 设计模式(五)The Singleton Pattern 单例模式
- 设计模式---单例模式(singleton)
- 设计模式--单例模式(Singleton)
- 设计模式--单例模式(Singleton)
- 设计模式-单例模式(Singleton)
- 【设计模式】-单例模式(Singleton)
- 设计模式---单例模式(singleton)
- 设计模式 -- 单例模式(Singleton)
- 设计模式:单例模式(Singleton)
- 设计模式:单例模式(Singleton)
- 设计模式:单例模式(Singleton)
- 设计模式:单例模式(Singleton)
- 设计模式:单例模式(Singleton)
- 设计模式-单例模式(Singleton)
- 【设计模式】单例模式(Singleton)
- 设计模式-单例(Singleton)模式
- JqGrid之布局与图标设计
- Hive安装及与HBase的整合
- 用于机器学习的数据集汇总
- Less
- 百度地图,模拟器报错No config chosen解决
- 单例模式(Singleton)-设计模式(五)
- Ruby
- 实现一键加入QQ群
- [345]Reverse Vowels of a String
- iOS <unknown header '/Users/app/Desktop/WiseAppawo/WiseAppVTwo/WiseAppVTwo-Bridging-Header.h' does
- Compass
- iOS-CADisplayLink详解以及与NSTimer对比
- 前端问题整理
- list和tuple