單例模式是最簡單的一種設計模式,它是創造型的。一個單例類僅允許他的一個實例被初始化。它檢查一個實例是否已經被創建,如果是則返回這個實例。下面是一個單例類的基本結構:
Singleton instance=Singleton.getInstance();
這個 getInstance()通過測試實例與是否為空來檢查這個類的唯一實例是否被創建,如果是空的,則創建一個實例,如果非空,則返回這個已經存在的實例,一旦一個實例被創建了,那么 getInstance()這個方法就返回這個實例。
另一種稍微有些不同的實現單例類的方法是將域聲明改為
private static final Singleton singleton=new Singleton();
這種方法總是創建一個實例。
1
package dp.singleton;
2
3
public class Singleton
{
4
private static Singleton singleton;
5
private Singleton()
{
6
7
}
8
9
public static Singleton getInstance()
{
10
if(singleton==null)
{
11
singleton=new Singleton();
12
}
13
return singleton;
14
}
15
16
}
17
在這個類中,有一個private static 的域,構造函數被設為私有的,這樣調用它的類就不能使用構造器來創建它的一個實例。從一個單例類中取得一個實例的唯一辦法是通過public static getInstance()方法。通過以下方法:

2

3



4

5



6

7

8

9



10



11

12

13

14

15

16

17


另一種稍微有些不同的實現單例類的方法是將域聲明改為
