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

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 结论

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

相关推荐
7***374540 分钟前
Java设计模式之工厂
java·开发语言·设计模式
雨中飘荡的记忆1 小时前
设计模式之原型模式
设计模式
LengineerC2 小时前
Rust仿node事件总线的简单实现
设计模式·rust
IT永勇3 小时前
C++设计模式-装饰器模式
c++·设计模式·装饰器模式
专注于大数据技术栈3 小时前
java学习--单例模式之懒汉式
java·学习·单例模式
口袋物联10 小时前
设计模式之工厂模式在 C 语言中的应用(含 Linux 内核实例)
linux·c语言·设计模式·简单工厂模式
Murphy_lx12 小时前
单例模式_
单例模式
phdsky12 小时前
【设计模式】建造者模式
c++·设计模式·建造者模式
小毛驴85012 小时前
软件设计模式-装饰器模式
python·设计模式·装饰器模式
phdsky14 小时前
【设计模式】代理模式
设计模式·代理模式