现在的位置: 首页 > 综合 > 正文

设计模式—-单件模式

2018年01月27日 ⁄ 综合 ⁄ 共 614字 ⁄ 字号 评论关闭

/**
 * 单件模式:确保一个类只有一个实例,并提供一个全局访问点。
 * @下午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;
 }
}

抱歉!评论已关闭.