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

1. 概念

  • 保证一个类只有一个实例
  • 并为该实例提供一个全局唯一的访问节点

2. 枚举

2.1 代码示例

示例
java 复制代码
public enum Singleton08 {
    INSTANCE;

    public void sendOk(){
        System.out.println("send ok");
    }
}
java 复制代码
public class SingletonTest08 {
    public static void main(String[] args) {
        Singleton08 instance = Singleton08.INSTANCE;
        Singleton08 instance1 = Singleton08.INSTANCE;
        System.out.println(instance == instance1);
        System.out.println("instance.hashCode= " + instance.hashCode());
        System.out.println("instance1.hashCode= " + instance1.hashCode());
        instance.sendOk();
    }
}

2.2 优缺点

  1. 这借助JDK1.5中添加的枚举来实现单例模式。不仅能避免多线程同步问题,而且还能防止反序列化重新创建新的对象。
  2. 这种方式是Effective Java作者Josh Bloch提倡的方式

2.3 结论

  • 在实际开发中,推荐使用这种单例设计模式。

相关推荐
短剑重铸之日12 小时前
《设计模式》第六篇:装饰器模式
java·后端·设计模式·装饰器模式
茶本无香14 小时前
设计模式之十二:模板方法模式Spring应用与Java示例详解
java·设计模式·模板方法模式
wangmengxxw20 小时前
设计模式 -详解
开发语言·javascript·设计模式
进击的小头20 小时前
设计模式落地的避坑指南(C语言版)
c语言·开发语言·设计模式
短剑重铸之日20 小时前
《设计模式》第五篇:策略模式
java·后端·设计模式·策略模式
HL_风神1 天前
C++设计模式学习-工厂方法模式
c++·学习·设计模式
琹箐1 天前
设计模式——策略模式
设计模式·策略模式
YigAin2 天前
Unity23种设计模式之 命令模式
设计模式·命令模式
twj_one2 天前
java中23种设计模式
java·开发语言·设计模式
香芋Yu2 天前
【深度学习教程——01_深度基石(Foundation)】05_数据太多怎么吃?Mini-batch训练的设计模式
深度学习·设计模式·batch