常见的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。然后再次判断是否为空,如果为空,则才创建单例,这样就可以避免多次创建的原因。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值