Java设计模式 - 单例模式
保证一个类仅有一个实例,并提供一个可以访问它的全局变量。
UML图示
实例
public class Singleton {
private static Singleton singleton = new Singleton();
private Singleton(){
System.out.println("Creating a singleton object!");
}
public static Singleton getInstance(){
return singleton;
}
}
要点
1. 保证一个类仅有一个实例 - 使用private修饰所有的构造函数,确保只有本类可以访问。
2. 并提供一个可以访问它的全局变量 - 作为这个类唯一实例化的对象。同时提供一个静态方法返回这个对象,以确保这个对象的唯一。
一些背景知识
在另外的类调用Singleton.getInstance()方法时,由于Singleton.singleton是一个静态对象,在JVM加载类的时候就会初始化singleton对象,所以并不需要其他语句以确保singleton不为null。