Singleton可以說是《Design Pattern》中最簡單也最實用的一個設計模式。那么,什么是Singleton?
      顧名思義,Singleton就是確保一個類只有唯一的一個實例。Singleton主要用于對象的創建,這意味著,如果某個類采用了Singleton模式,則在這個類被創建后,它將有且僅有一個實例可供訪問。很多時候我們都會需要Singleton模式,最常見的比如我們希望整個應用程序中只有一個連接數據庫的Connection實例;又比如要求一個應用程序中只存在某個用戶數據結構的唯一實例。我們都可以通過應用Singleton模式達到目的。
      一眼看去,Singleton似乎有些像全局對象。但是實際上,并不能用全局對象代替Singleton模式,這是因為:其一,大量使用全局對象會使得程序質量降低,而且有些編程語言例如C#,根本就不支持全局變量。其二,全局對象的方法并不能阻止人們將一個類實例化多次:除了類的全局實例外,開發人員仍然可以通過類的構造函數創建類的多個局部實例。而Singleton模式則通過從根本上控制類的創建,將"保證只有一個實例"這個任務交給了類本身,開發人員不可能再有其它途徑得到類的多個實例。這一點是全局對象方法與Singleton模式的根本區別。

首先保證類中有唯一的一個構造器,而且是private的,私有的,就是除了在該類中其他地方都不可以訪問的。
其次有一個私有的private該類型的變量,這個變量可以在聲明的的時候就實例化,也可以在構造器中調用的時候再實例化,但是,在構造器中實例化時要先判斷:
private A a;
public A(){
if(a == null)
a= new A();
}
這樣就可以保證只有一個A的實例,
淡然最重要的是要有個public的返回A類型變量的方法,用來返回這個唯一的變量
public A returnA(){
return a;
}
這樣就可以了,實際上就三方面:
1,一個私有的構造器
2,一個私有的該類類型的變量
3,必須有一個共有的返回類型為該類類型的方法,用來返回這個唯一的變量