常见的Java设计模式

单例设计模式的4中模式:

懒汉式:

public class SingleInstance{
   privte SingleInstance();
   private static final SingleInstance  instance= null;

   public static SingleInstance getInstance(){
       if(instance ==null){
           synchronized(SingleInstance.class){
               if(instance==null){
                  instance= new SingleInstance();
               }
           }
       }
       return instance;
   }
}

饿汉式:

public class SingleInstance{
    private SingleInstance(){};
    private static final  SingleInstance instance = new SingleInstance();
    Public static SingleInstance getInstance(){
        return instance;
    }
}

静态内部类:

public class SingleInstance{
   private SingleInstance();
   private static class Singleton{
       private static final SingleInstance instance = new SingleInstance();
   }
   
   public static SingleInstance getInstance(){
   return  Singleton.instance;
   }
}

枚举:

public enum SingleInstance{
   INSTANCE;
   public void SingleTon(){
   }
}

在饿汉式中,它是在类加载的时候创建,线程是安全的。而懒汉式是不安全的,它是需要想用的时候再创建,不用的时候不创建。

怎样才能使懒汉式可以变成安全的呢,可以通过双重锁的机制来让它变得安全,也就是帮它加锁。当为空的时候,再判断该单例.class。然后再次判断是否为空,如果为空,则才创建单例,这样就可以避免多次创建的原因。

猜你喜欢

转载自blog.csdn.net/llengnuo/article/details/76776282