您的位置:首页 > 其它

Singleton VS 'static class'

2016-07-10 15:21 381 查看
对static class 进行单引号注释的原因是,java不支持静态外部类,这里想表明的意思是,有这么一个类,里面的方法都是static类型,如下:

public class Tools {

public static void test() {
//...
}

public static void test2() {
//....
}
}


单例:

public class Tools {
private static volatile Tools INSTANCE;
public static Tools getInstance() {
if (null == INSTANCE) {
synchronized (Tools.class) {
if (null == INSTANCE) {
INSTANCE = new Tools();
}
}
}
return INSTANCE;
}

public void test() {
//...
}

public void test2() {
//....
}
}


最大的区别:

单例是面向对象的而静态类是面向过程的

单例可以实现其他接口,静态类不行

单例可以被继承,而静态类不行

其他的细节,都不是本质区别。

Difference between static class and singleton pattern?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  singleton static