5.3.9 单例和枚举 按照《高效Java 第二版》中的说法:单元素的枚举类型已经成为实现Singleton的最佳方法。 为了理解这个观点,先来了解一点相关的枚举知识,这里只是强化和总结一下枚举的一些重要观点,更多基本的枚举的使用,请参看Java编程入门资料。 Java的枚举类型实质上是功能齐全的类,因此可以有自己的属性和方法。 Java枚举类型的基本思想是通过公有的静态final域为每个枚举常量导出实例的类。 从某个角度讲,枚举是单例的泛型化,本质上是单元素的枚举。 用枚举来实现单例非常简单,只需要编写一个包含单个元素的枚举类型即可。示例代码如下:
使用枚举来实现单实例控制会更加简洁,而且无偿地提供了序列化的机制,并由JVM从根本上提供保障,绝对防止多次实例化,是更简洁、高效、安全的实现单例的方式。 |
|