您的位置:首页 > 其它

设计模式----单件模式

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;

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: