Singleton 模式详解
来源:互联网 发布:剑三成男大叔脸型数据 编辑:程序博客网 时间:2024/06/11 18:59
Singleton 模式详解
下面是我们常见的Singleton的写法
package example.designmodel.singleton;public class Singleton1 { private static Singleton1 instance; public Singleton1(){ } public static Singleton1 getinstance(){ if(instance == null){ instance = new Singleton1(); } return instance; }}
//problem ... 多个地方去调用getinstance的时候会出问题。还是会多创建instance。于是有个Singleton2
public class Singleton2 { private static Singleton2 instance; public Singleton2(){ } public static synchronized Singleton2 getinstance(){ if(instance == null){ instance = new Singleton2(); } return instance; }}
//problem ... 一次只有一个可以调用getinstance,性能不是特别好,其实只有第一次需要同步,后面的调用都同步是一种累赘。于是有个Singleton3
public class Singleton3 { private static Singleton3 instance = new Singleton3(); public Singleton3(){ } public static Singleton3 getinstance(){ return instance; }}
//problem ... eagerly create急切创建实例 .如果您仍然关心性能,可使用Singleton4
package example.designmodel.singleton;public class Singleton4 { private volatile static Singleton4 instance; public Singleton4(){ } public static Singleton4 getinstance(){ if(instance == null){ synchronized(Singleton4.class){ if(instance == null){ instance = new Singleton4(); } } } return instance; }}
//problem ... 双重加锁 JDK5以后适用。这里使用volatile标识,双重加锁
- Singleton 模式详解
- java的Singleton模式详解
- Singleton单例模式详解
- Singleton模式详解--设计模式(1)
- Singleton设计模式的C++实现详解
- 设计模式之单体详解 Singleton
- Singleton设计模式的C++实现详解
- 单例模式(Singleton)详解
- 单例模式详解(singleton pattern)
- 设计模式 - 单件模式(singleton pattern) 详解
- 设计模式 - 单件模式(singleton pattern) 详解
- Singleton模式
- Singleton模式
- singleton模式
- Singleton模式
- Singleton模式
- Singleton模式
- Singleton模式
- TestNG+Ant自动运行测试
- (移动位置社会网络中)LBSN:好友关系对人类活动的影响分析
- http://magustest.com/blog/
- 读程序员技术练级攻略有感
- 纯DOS下安装Linux
- Singleton 模式详解
- 应用程序正常初始化(0xc0000135)失败
- CenOS5.6下无法挂载NTFS盘符的解决方法
- Spring 事务管理高级应用难点剖析: 第 2 部分
- 装箱和拆箱和ValueOf以及XXXValue -- Java语法糖(Syntax sugar)
- php读xml
- webkit idl parser 模块分析
- 压缩解压缩命令
- C# FileStream 文件读写(转)