首页 > 文章列表 > java枚举实现单例的方法

java枚举实现单例的方法

java枚举 单例
311 2022-08-06

本教程操作环境:windows7系统、java10版,DELL G3电脑。

很多人说枚举类是实现单例的最好方法,因为枚举类单件是线程安全的,也是唯一不能破坏的单件模式实现。也就是说,不能通过反射来创建一个实例,这就保证了整个应用中只有一个实例,是一个非常硬核的单个实例。

1、实现步骤

1)内部类使用枚举

(2)在枚举类的构造器里初始化

(3)对外部提供的获取单例的方法

(4)获取单例对象,返回并测试

2、实例

public class SingletonObj {
    //内部类使用枚举
    private enum SingletonEnum {
        INSTANCE;
 
        private SingletonObj singletonObj;
//在枚举类的构造器里初始化singletonObj
        SingletonEnum() {
            singletonObj = new SingletonObj();
        }
 
        private SingletonObj getSingletonObj() {
            return singletonObj;
        }
    }
 
    //对外部提供的获取单例的方法
    public static SingletonObj getInstance() {
        //获取单例对象,返回
        return SingletonEnum.INSTANCE.getSingletonObj();
    }
 
    //测试
    public static void main(String[] args) {
        SingletonObj a = SingletonObj.getInstance();
        SingletonObj b = SingletonObj.getInstance();
        System.out.println(a == b);//true
    }
}