A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李爱军 中级黑马   /  2012-3-26 22:02  /  1680 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

当枚举只有一个成员时,就可以作为一种单例的实现方式。这句话怎么理解啊。。。

2 个回复

倒序浏览
Java的枚举类型实质上是功能齐全的类,因此可以有自己的属性和方法。

Java枚举类型的基本思想是通过公有的静态final域为每个枚举常量导出实例的类。

从某个角度讲,枚举是单例的泛型化,本质上是单元素的枚举。

用枚举来实现单例非常简单,只需要编写一个包含单个元素的枚举类型即可。示例代码如下:

/**  
* 使用枚举来实现单例模式的示例  
*/  
public enum Singleton {  
    /**  
     * 定义一个枚举的元素,它就代表了Singleton的一个实例  
     */  
    uniqueInstance;  

    /**  
     * 示意方法,单例可以有自己的操作  
     */  
    public void singletonOperation(){  
        //功能处理  
    }  
}
使用枚举来实现单实例控制会更加简洁,而且无偿地提供了序列化的机制,并由JVM从根本上提供保障,绝对防止多次实例化,是更简洁、高效、安全的实现单例的方式。
回复 使用道具 举报
单例模式还是举个例子吧!比如银行调度系统那个例子服务窗口可以有多个但只能有一个产生用户号的机器,而枚举呢?他不能有子类,也不能造就其他对象,所以当其内部只有一个对象是也就满足了单例模式的条件.
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马