用Java写一个单例类。

来源:互联网 发布:irobort扫地知乎 编辑:程序博客网 时间:2024/06/06 18:07
- 饿汉式单例
1
2
3
4
5
6
7
public class Singleton {
    privateSingleton(){}
    privatestatic Singleton instance =new Singleton();
    publicstatic Singleton getInstance(){
        returninstance;
    }
}
  • 懒汉式单例
1
2
3
4
5
6
7
8
public class Singleton {
    privatestatic Singleton instance =null;
    privateSingleton() {}
    publicstatic synchronizedSingleton getInstance(){
        if(instance == null) instance =new Singleton();
        returninstance;
    }
}

注意:实现一个单例有两点注意事项,①将构造器私有,不允许外界通过构造器创建对象;②通过公开的静态方法向外界返回类的唯一实例。这里有一个问题可以思考:Spring的IoC容器可以为普通的类创建单例,它是怎么做到的呢?

0 0