黑马程序员技术交流社区
标题:
关于枚举的一个疑惑。
[打印本页]
作者:
李爱军
时间:
2012-3-26 22:02
标题:
关于枚举的一个疑惑。
当枚举只有一个成员时,就可以作为一种单例的实现方式。这句话怎么理解啊。。。
作者:
杨波
时间:
2012-3-26 22:21
Java的枚举类型实质上是功能齐全的类,因此可以有自己的属性和方法。
Java枚举类型的基本思想是通过公有的静态final域为每个枚举常量导出实例的类。
从某个角度讲,枚举是单例的泛型化,本质上是单元素的枚举。
用枚举来实现单例非常简单,只需要编写一个包含单个元素的枚举类型即可。示例代码如下:
/**
* 使用枚举来实现单例模式的示例
*/
public enum Singleton {
/**
* 定义一个枚举的元素,它就代表了Singleton的一个实例
*/
uniqueInstance;
/**
* 示意方法,单例可以有自己的操作
*/
public void singletonOperation(){
//功能处理
}
}
使用枚举来实现单实例控制会更加简洁,而且无偿地提供了序列化的机制,并由JVM从根本上提供保障,绝对防止多次实例化,是更简洁、高效、安全的实现单例的方式。
作者:
亚男
时间:
2012-3-27 00:19
单例模式还是举个例子吧!比如银行调度系统那个例子服务窗口可以有多个但只能有一个产生用户号的机器,而枚举呢?他不能有子类,也不能造就其他对象,所以当其内部只有一个对象是也就满足了单例模式的条件.
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2