Java入门基础08 架构设计

浅谈java中的单例模式(饿汉模式与懒汉模式)

2017-12-23  本文已影响108人  Twinklere

一.定义

二.观察UML图

单例模式.png

单例模式中的两种典型模式

1.饿汉模式

public class Singleton {
    
    private static final Singleton singleton = new Singleton();
    
    private Singleton() {
        
    }
    
    public static Singleton getInstance() {
        return singleton;
    }
    
}

优点

缺点

2.懒汉模式

public class Singleton {
    
    private static Singleton singleton = null;
    
    private Singleton() {
        
    }
    
    public static Singleton getInstance() {
        if(singleton == null) {
            return new Singleton();
        }
        return singleton;
    }
    
}
public class Singleton {
    
    private static Singleton singleton = null;
    
    private Singleton() {
        
    }
    public static Singleton getInstance() {
        if(singleton == null) {
            synchronized (singleton) {
                if(singleton == null) { 
                    return new Singleton();         
                }
                return singleton;
            }
        }
        return singleton;
    }
}

优点

缺点

三.应用

四.小结

上一篇下一篇

猜你喜欢

热点阅读