常见的Java设计模式

来源:互联网 发布:sql 2005卸载 编辑:程序博客网 时间:2024/06/11 12:03

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