一個單態類只可有一個實例。這樣的類常用來進行資源管理。
在Java語言中有兩種實現方式.
??? 1.餓漢式單態類?
?????????
1public?class?EagerSingleton{
2????private?EagerSingleton(){}
3????public?static?EagerSingleton?getInstance(){
4????????return?instance;
5????}

6
7????private?static?final?EagerSingleton?instance=new?EagerSingleton();
8}
????? 2.懶漢式單態類
???????? 懶漢式單態類在第一次引用時將自己實例化
????????
?1public?class?LazySingleton{
?2????private?LazySingleton(){}
?3????public?static LazySingleton?getInstance(){
?4???????if(instance==null){
?5???????????synchronized(LazySingleton.class){
?6?????????????if(instance==null){
?7??????????????????instance=new?LazySingleton();
?8??????????????}

?9???????????}

10???????}

11???????return?instance;
12????}

13????private?static?LazySingleton?instance=null;
14?}
注意到以上兩種方法中,構造方法均為private故不能被繼承.
?

? 參考文獻 1,http://www.yesky.com/20011105/203407.shtml
???????????????????? 2.<<java設計模式>>