博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
再看单例模式
阅读量:5130 次
发布时间:2019-06-13

本文共 704 字,大约阅读时间需要 2 分钟。

C++版本:

class
 
Singleton
{
public
:
   
static
 
Singleton
&
 
getInstance()
   
{
   
   
return
 
instance;
   
}
private
:
   
Singleton()
{
}
;
   
Singleton(
const
 
Singleton
&
);
   
Singleton
&
 
operator
=
(
const
 
Singleton
&
);
   
static
 
Singleton
 
instance;
}
;
Singleton
 
Singleton
:
:
instance;

注意:

1.getInstance返回的是引用,如果不是引用则调用了一次拷贝构造,产生临时对象。

2.拷贝构造和赋值运算符要私有化,否则有可能产生新的对象。

如不对拷贝构造私有化执行下面语句

Singleton s1 = Singleton::getInstance();

这里调用拷贝构造产生了新的对象s1,虽然s1是对static instance的浅拷贝,但这不符合单例的特征。

3.注意对static instance的定义性说明。

 

java版本:

class
 
Singleton
 
{
   
   
private
 
Singleton()
 
{
}
;
   
private
 
static
 
Singleton
 
instance
 
=
 
new
 
Singleton();
   
   
public
 
static
 
Singleton
 
createInstance()
 
{
   
   
return
 
instance;
   
}
}

转载于:https://www.cnblogs.com/helloweworld/p/3349677.html

你可能感兴趣的文章
npm 常用指令
查看>>
20几个正则常用正则表达式
查看>>
TextArea中定位光标位置
查看>>
非常棒的Visual Studo调试插件:OzCode 2.0 下载地址
查看>>
判断字符串在字符串中
查看>>
hdu4374One hundred layer (DP+单调队列)
查看>>
类间关系总结
查看>>
properties配置文件读写,追加
查看>>
Linux环境下MySql安装和常见问题的解决
查看>>
lrzsz——一款好用的文件互传工具
查看>>
ZPL语言完成条形码的打印
查看>>
这20件事千万不要对自己做!
查看>>
Linux环境下Redis安装和常见问题的解决
查看>>
玩转小程序之文件读写
查看>>
Android开发中UI相关的问题总结
查看>>
FastDFS高可用集群架构配置搭建及使用
查看>>
HashPump用法
查看>>
cuda基础
查看>>
virutalenv一次行安装多个requirements里的文件
查看>>
Vue安装准备工作
查看>>