饿汉模式
public class Demo {
private static Demo d = new Demo();
private Demo(){}
public static Demo getInstance() {
return Demo.d;
}
}
懒汉模式
public class Demo {
private static Demo d;
private Demo(){}
public static Demo getInstance() {
// 懒汉模式只有在第一次调用的时候才new一次当前对象
if(d == null)
Demo.d = new Demo();
return Demo.d;
}
}
使用单例类
public class Hero {
public static void main(String[] args) {
//得到Demo的实例化对象
Demo d = Demo.getInstance();
}
}
单例模式还有其他的的实现方式,这两种是最简单的!
要点
1,某个类只能有一个实例;
2,它必须自行创建这个实例;
3,必须自行向整个系统提供这个实例。
从具体实现角度来说,就是以下三点:
1,单例模式的类只提供私有的构造函数,
2,类定义中含有一个该类的静态私有对象,
3,该类提供了一个静态的公有的函数用于创建或获取它本身的静态私有对象。