常见的Java设计模式

xiaoxiao2021-02-28  85

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

转载请注明原文地址: https://www.6miu.com/read-54747.html

最新回复(0)