单例设计模式和防止克隆
我在网络上读到的许多关于单例设计模式的文章都提到,该类应该覆盖'clone()'方法,并在其中抛出'CloneNotSupported'异常。这真的有必要吗?
默认情况下,clone() 方法受保护,因此任何类(同一包中的类除外)都无法在该 Singleton 实例上调用它。另外,如果此 Singleton 未实现 Cloneable,则即使调用此方法,它也将给出运行时异常。另外,构造函数是私有的,我们将无法对其进行子类化,从而允许其克隆。那么,我是否仍应为我的 Singleton 类实现此建议?
编辑:只是为了澄清:我不是在寻找实现单例的最佳方法。我只是在问上面提到的建议的有效性,w.r.t“正常”的单例模式(而不是基于枚举的单例)。