设计模式 - 单例模式(枚举式)

阅读 47

2022-05-18



枚举模式:最安全


package com.mmall.concurrency.example.singleton;

import com.mmall.concurrency.annoations.Recommend;
import com.mmall.concurrency.annoations.ThreadSafe;

/**
* 枚举模式:最安全
*/
@ThreadSafe
@Recommend
public class SingletonExample7 {

// 私有构造函数
private SingletonExample7() {

}

public static SingletonExample7 getInstance() {
return Singleton.INSTANCE.getInstance();
}

private enum Singleton {
INSTANCE;

private SingletonExample7 singleton;

// JVM保证这个方法绝对只调用一次
Singleton() {
singleton = new SingletonExample7();
}

public SingletonExample7 getInstance() {
return singleton;
}
}
}
  • 相对于懒汉模式安全、性能更好;相对于饿汉模式只需第一次使用调用即可,不会造成资源浪费。


精彩评论(0)

0 0 举报