您的位置:首页 > 其它

设计模式:单例

2016-12-15 00:00 92 查看
这里只说线程安全的单例模式。

public class Singleton {
private static Singleton uniqueInstance;

private Singleton() {}
//看这里看这里。这里对性能还是影响比较大,下面贴出它的改进行。
public static synchronized Singleton getInstance() {
if (uniqueInstance == null) {
uniqueInstance = new Singleton();
}
return uniqueInstance;
}

public String getDescription() {
return "I'm a thread safe Singleton!";
}
}

public class SingletonClient {
public static void main(String[] args) {
Singleton singleton = Singleton.getInstance();
System.out.println(singleton.getDescription());
}
}

public class Singleton {
private volatile static Singleton uniqueInstance;

private Singleton() {}

public static Singleton getInstance() {
//这是对上述的改进型。当对象已经有了,就可以肆无忌惮的多线程一起用了!
if (uniqueInstance == null) {
synchronized (Singleton.class) {
if (uniqueInstance == null) {
uniqueInstance = new Singleton();
}
}
}
return uniqueInstance;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: