黑马程序员技术交流社区

标题: 枚举问题 [打印本页]

作者: 宋伟    时间: 2011-11-21 17:03
标题: 枚举问题
本帖最后由 宋伟 于 2011-11-21 22:39 编辑

请问枚举只有一个成员时,为什么可以作为一种单例实现方式?
作者: laoyang    时间: 2011-11-21 17:08
当枚举只有一个成员时,要想获得枚举成员,要么得到这个唯一的成员,要么为null,我是这么理解的,呵呵。
作者: 绿影    时间: 2011-11-21 17:13
单例的精髓是什么?不就是要保证你所使用的对象始终只有一个而且这个对象身上的方法成员变量等特征不可改变吗?正式为了这个目的所以我们使用private隐藏构造函数,让使用者不能自己创建实例对象,而是我们自己在内部给他new对象,然后提供public方法暴露出去供调用者使用。然而,枚举的精髓在什么?枚举精髓就在于固定使用对象的个数及每个元素的特征。使用者就只能使用者几个。那么当所定义的枚举中仅有一个元素时二者是不是就有异曲同工之妙了呢?
作者: 崔浩    时间: 2011-11-21 17:35
枚举的存在是创建有限的(屈指可数)对象的存在的,那么他的构造函数是私有化的,如果枚举里面的对象只有一个,那么这个枚举就只能有一个对象存在了,他是不能在其他类面在创建对象了,其次枚举创建单例的时候,由于底层jvm保证了线程了同步,所以不必对其进行线程同步,所以在一般情况下优先懒汉式和恶汉式的单例使用
作者: moonlight    时间: 2011-11-21 17:57
因为里面只有一个成员,无论数据怎么调用就只有一个值,单例设计模式就是为了保证数据的唯一性而采取的一种处理数据的模式,
所以说枚举当只有一个值的时候保证了数据的唯一性,所以达到了单例设计模式的要求,可视为单例设计模式!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2