单例模式学习
民生杂谈 2019-10-06 18:38 字号: 大 中 小
来源:东方头条 日期: 09:22: 导读:单例设计模式是设计模式里最常用的设计模式,但是实现一个完全符合要求的单例模式却不太容易。其实单例模式的终极目标是要实现:
单例设计模式是设计模式里最常用的设计模式,但是实现一个完全符合要求的单例模式却不太容易。
其实单例模式的终极目标是要实现:全局一个类实例。
最常见的实现方式;(C++版本)
版本1:
class Signleton {
public:
static Singleton& GetInstance() {
if (instance_ == NULL) {
instance_ = new Singleton();
}
return *instance_;
}
private:
Singleton() = default;
static Singleton* instance_;
};
Singleton* Singleton::instance_ = NULL;
版本1中已经涵盖了单例实现的两个关键点:
关键点1:使用静态的方法和静态的类示例;
关键点2:构造函数私有化;
但还是有不足之处,看
版本2:
class Signleton {
public:
static Singleton& GetInstance() {
if (instance_ == NULL) {
instance_ = new Singleton();
}
return *instance_;
}
private:
Singleton() = default;
Singleton(Singleton&) = delete;
Singleton& operator= (Singleton&) = delete;
static Singleton* instance_;
};
Singleton* Singleton::instance_ = NULL;
关键点1:使用静态的方法和静态的类示例;
关键点2:构造函数私有化;
关键点 :拷贝构造函数和复制运算符也要私有化
因为Singleton::GetInstance()返回的是Singleton的引用,如果拷贝构造函数不是私有的,
用户可以通过以下方式构造两个类示例。
Singleton s(Singleton::GetInstance());
(:)
常州哪家医院治牛皮癣镇江治癫痫病医院
泉州专治妇科医院
-
-
女排超级联赛第一阶段战罢沪苏渐露冠军相
女排超级联赛第一阶段战罢 沪苏渐露“冠军相”北京女排球员...
2020-08-12 | 民生杂谈
-
-
库里评心中历史前五巨星有詹姆斯竟没科比搭配
库里评心中历史前五巨星:有詹姆斯竟没科比库里的看法你认...
2020-06-02 | 民生杂谈
-
-
海口中小学划片范围出炉快看你孩子在哪个片搭配
海口中小学划片范围出炉!快看你孩子在哪个片区上学(附:...
2020-05-28 | 民生杂谈
-
-
詹姆斯27分骑士四人上20取连胜小牛主场搭配
詹姆斯27分骑士四人上20取连胜 小牛主场惨败33分北京时间3月...
2020-05-27 | 民生杂谈
-
-
烟台市做好惠民工程出新策
烟台市做好惠民工程出新策7月7日至9日,在召开的全市领导干...
2019-12-17 | 民生杂谈
-
-
仓山区民政局召开2016年清明节工作部署
仓山区民政局召开2016年清明节工作部署会2016年3月28日下午,...
2019-12-17 | 民生杂谈