Singleton模式
程序运行时通常会生成很多实例,当我们想在程序中表示某个东西只会存在一个时,就会有“只能创建一个”的需求。这就要用到单例设计模式了。
- 确保任何情况下都绝对只有一个实例。
- 想在程序上表现出“只存在一个实例”。
代码设计:
public class Singleton {
private static Singleton singleton = new Singleton();
private Singleton(){
System.out.println("生成一个实例。");
}
public static Singleton getInstance(){
return singleton;
}
}
public class Main {
public static void main(String[] args) {
System.out.println("Start.");
Singleton obj1 = Singleton.getInstance();
Singleton obj2 = Singleton.getInstance();
if (obj1 == obj2){
System.out.println("obj1与obj2是相同的实例");
}else {
System.out.println("obj1与obj2是不同的实例");
}
System.out.println("End.");
}
}
Singleton类只会生成一个实例。静态成员变量只在类加载的时候初始化一次,构造函数设置为private是为了防止外部调用,禁止在该类外部使用new Singleton来调用。最后定义静态成员方法使类外部来获取该类的唯一实例。