首页 > 技术文章 > 单例模式

yw-technology 原文

设计模式中最简单的模式,也是Android系统中最常见的模式之一;

1. 饿汉式写法

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

2. 懒汉式写法:

public class SingleInstance2 {
    
    private SingleInstance2(){}
    
    private static volatile SingleInstance2 instance= null;

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

3. Java Effective中推荐了一种写法

public enum  SingleInstance3 {
    instance;

    public void print(){
        System.out.println("this is a singleInstance!");
    }

}

比较推荐第3种写法,即高效又简洁;

推荐阅读