自Java 5以来最好的单例模式



从Java 5开始,据说创建单例的最好方法是使用单元素枚举类型。

的例子:

public enum SuperSingleton implements Zooma{
    INSTANCE;
    /**
     */
    public void fightTheBattle(){
        System.out.println("I am fighting the battle!!!");
    }
    @Override
    public void runningWild() {
        //This is method implemented from the Zooma interface.      
    }
}

根据Joshua Bloch,单元素枚举类型singleton是;

  • 更简洁
  • 提供免费的序列化机制
  • 并提供了一个针对多个实例化的铁甲。

我可以看到它是如何更简洁的,以及它是如何提供一个铁的防止多个实例化,但是它是如何免费提供序列化机制的呢?

是否是单例通过枚举得到的?

是的,枚举都是从实现SerializableEnum类扩展而来的。

我不是百分之百确定,但我认为如果你反序列化一个序列化的单例不止一次,你可能会得到不止一个实例。枚举实例将始终保持单例。

所以你得到了'更多的序列化'而不是仅仅实现序列化。

http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Enum.html

是的:)

相关内容

  • 没有找到相关文章

最新更新