设计模式之Singleton模式

82 阅读1分钟

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来调用。最后定义静态成员方法使类外部来获取该类的唯一实例。