java中的单例模式可不可以这么写?

2025-01-21 12:01:58
推荐回答(6个)
回答1:

可以。缺点:
1,别人用的时候会别扭,Single.a 这么用啊?表意不清楚
2,JAVA里没有属性的概念,所以都会用函数 setXXX getXXX函数来代替,目的是当设置或获取某个属性值的时候可以做一些其他事情。你这么写,如果遇到此类问题就不能解决。

回答2:

单例模式

class Single {
public static Single a;
private Single(){}
public Single getSingle(){
if(null==a){
a=new Single();

}

return a;

};
}

Java中单例模式定义:“一个类有且仅有一个实例,并且自行实例化向整个系统提供。”
你的写的那个每次都会重新初始化a的,因为即使当a不是null,你写的那个也会进行new操作,而且将原来的a的值替换掉。

回答3:

单例模式是java23中设计模式中最简单的一种:具体有两种写法大同小异:
第一种:
public class Singleton{
private static Singleton singleton;
private Singleton(){}
public Singleton getInstance(){
if(singleton == null){
singleton = new Singleton();
}
return singleton;
}
}

第二种:
public class Singleton{
private static Singleton singleton = new Singleton();
private Singleton(){}
public Singleton getInstance(){
return singleton;
}
}

完全手工敲的代码,希望能采纳。

回答4:

http://callmegod.iteye.com/blog/1474441
这里有详细的总结

回答5:

那你怎么拿到那个类内部静态单例呢,你每次实例化的时候都是实例化了一个新的Single,Single内部属性实例化了一个Single,浪费

回答6:

应该是可以这么写的,但是没有标准的灵活