设计模式----单件模式
2013-02-04 22:35
204 查看
/**
* 单件模式:确保一个类只有一个实例,并提供一个全局访问点。
* @下午10:01:58
* @author ASUS
*/
public class Singleton {
/**
* 静态成员变量
* 利用 双重检验加锁 volatile 首先检查是否已经创建 如果尚未创建 才进行同步 这样一来 只有第一次会同步
*/
private volatile static Singleton uniqueInstance=new Singleton();
/**
* 构造方法声明为 隐私类型的 在其他类 无法实例化类
*/
private Singleton(){}
/**
* 静态方法 类名调用
* 但在多线程中 不能确保只生成一个对象
* 1.同步方法 可以在方法前面加上synchronized 但是却影响性能
* 2.急切 实例化 静态成员变量直接实例化对象
* 3.利用双重检验加锁 例如当前所做的 在静态成员变量前
* @return该类的一个对象
*/
public static Singleton getInstance(){
if(uniqueInstance==null){
synchronized (Singleton.class) {
if(uniqueInstance==null){
uniqueInstance= new Singleton();
}
}
}
return uniqueInstance;
}
}
* 单件模式:确保一个类只有一个实例,并提供一个全局访问点。
* @下午10:01:58
* @author ASUS
*/
public class Singleton {
/**
* 静态成员变量
* 利用 双重检验加锁 volatile 首先检查是否已经创建 如果尚未创建 才进行同步 这样一来 只有第一次会同步
*/
private volatile static Singleton uniqueInstance=new Singleton();
/**
* 构造方法声明为 隐私类型的 在其他类 无法实例化类
*/
private Singleton(){}
/**
* 静态方法 类名调用
* 但在多线程中 不能确保只生成一个对象
* 1.同步方法 可以在方法前面加上synchronized 但是却影响性能
* 2.急切 实例化 静态成员变量直接实例化对象
* 3.利用双重检验加锁 例如当前所做的 在静态成员变量前
* @return该类的一个对象
*/
public static Singleton getInstance(){
if(uniqueInstance==null){
synchronized (Singleton.class) {
if(uniqueInstance==null){
uniqueInstance= new Singleton();
}
}
}
return uniqueInstance;
}
}
相关文章推荐
- DOTA版设计模式——单件模式
- 设计模式之单件模式续
- 设计模式入门(1)------单件(Singleton)
- [设计模式] javascript 之 单件模式
- Head First 设计模式——单件模式(Singleton Pattern)
- 设计模式--创建型-SINGLETON(单件)
- 设计模式——单件模式
- 设计模式 单件模式(Signleton Pattern)
- 设计模式:单件模式(Singleton Pattern)
- 脚跟脚设计单件模式—第二脚
- 设计模式学习(一)------ 单件模式
- 【设计模式】《Head First 设计模式》读书笔记——单件模式
- Dot Net设计模式—单件模式
- .NET设计模式(2):单件模式(Singleton Pattern)
- 设计模式 - 单件 & 原型
- C#设计模式之单件模式(Singleton Pattern)
- 设计模式初步尝试之单件模式
- 设计模式学习之单件模式的静态初始化
- 设计模式之单件模式
- 设计模式随笔-单件模式