单利模式

Posted 风少凌云

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了单利模式相关的知识,希望对你有一定的参考价值。

单例模式
使用单例模式Singleton(1)
public class Singleton {
  private Singleton(){}
  //在自己内部定义自己一个实例,注意这是private
//预加载
  private static Singleton instance = new Singleton();
  
//这里提供了一个供外部访问本class的静态方法,
//可以直接访问  public static Singleton getInstance() {    return instance;     }
}

使用单例模式Singleton(2)
public class Singleton {
//延迟加载
  private static Singleton instance = null;

private Singleton (){} 
 public static synchronized Singleton getInstance() {  //这个方法比上面有所改进,不用每次都进行生成
//对象,只是第一次使用时生成实例,提高了效率!
  if (instance==null)
   instance=new Singleton();
  return instance;   }
}
这种方式在多线程的情况下,由于每次获取实例的时候都要对getInstance()方法加锁,获取锁才能运行,效率会受影响。

使用单例模式Singleton(3)
双锁机制:
public class Singleton {
  private static Singleton instance = null;
private Singleton (){}
  public static Singleton getInstance(){
  if (instance==null){
synchronized(Singleton.class) {
if (instance == null) {
instance = new Singleton();
} }
return instance;  
  }
}这种方式只是在初始化Singleton那部分代码的时候添加同步锁,这样提高了效率。

以上是关于单利模式的主要内容,如果未能解决你的问题,请参考以下文章

单利模式

java设计模式 --------单利模式

java 单利模式

单利模式的优缺点和使用场景

单利模式的优缺点和使用场景

单利模式