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 优缺点
- 这借助JDK1.5中添加的枚举来实现单例模式。不仅能避免多线程同步问题,而且还能防止反序列化重新创建新的对象。
- 这种方式是Effective Java作者Josh Bloch提倡的方式
2.3 结论
- 在实际开发中,推荐使用这种单例设计模式。