【图解设计模式】Singleton模式

确保只能生成一个实例。

示例

类图

C5ohRO.png

Singleton类

1
2
3
4
5
6
7
8
9
10
11
public class Singleton {
private static Singleton singleton = new Singleton();

private Singleton(){
System.out.println("生成了一个实例");
}

public static Singleton getInstance() {
return singleton;
}
}

Main类

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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.");
}
}

运行结果

1
2
3
4
Start.
生成了一个实例
obj1与obj2是相同的实例。
End.

登场角色

Singleton

在Singleton模式中,只有Singleton这一个角色。Singleton角色中有一个返回唯一实例的static方法。该方法总是会返回同一个实例。

类图

C5ohRO.png