懒汉式单例模式的安全问题
//懒汉式单例模式
public class LazySingleton {
private LazySingleton() {
// TODO Auto-generated constructor stub
}
private static LazySingleton lazySingleton = null;
/**
* 只声明,先不创建对象
* @return
*/
public LazySingleton getSingleton() {
if(lazySingleton==null) {
lazySingleton = new LazySingleton();
}
return lazySingleton;
}
public String getAccount(){
return "公司账户";
}
}
如果在上述代码的情况下,在其他类中获取了该对象。但是,把该对象重定向,指向了某自定义对象,如下:
public class MySingleton extends LazySingleton{
public String getAccount(){
return "我的账户";
}
}
是否会造成严重安全问题?
除了把“LazySingleton"设为”final"外,还有其他解决方案吗?还是说这种模式先天存在这个缺陷?