Java 使用 Enum 实现单例模式

枚举,如果涉及到反序列化创建对象时推荐使用枚举的方式来实现单例,因为Enum能防止反序列化时重新创建新的对象。本文介绍 Enum 的使用方式。

public enum SingletonEnum{
    INSTANCE;
}

通过SingletonEnum.INSTANCE来访问实例,使用方式很简单. 然而就这么简单的话也没有更多意义,具体的使用方式如下

public enum SingletonEnum {
   INSTANCE;
   int value;
 // 这里我们可以自定义构造函数.
   private SingletonEnum() { 
      value = 1; 
      System.out.println("INSTANCE now created!"); 
    } 
    public int getValue() { 
      return value;
    }
   public void setValue(int value) { 
      this.value = value;
   } 
}

调用:

System.out.println("start get instance!"); SingletonEnum singleton = SingletonEnum.INSTANCE; System.out.println(singleton.getValue()); singleton.setValue(2); System.out.println(singleton.getValue());

你可能感兴趣的:(Java 使用 Enum 实现单例模式)