學習單例模式

2021-07-03 13:00:10 字數 979 閱讀 3001

1、單例模式是怎樣產生的?

當想要讓乙個定義類只能例項化乙個物件,則不能對外提供public的構造方法,而是要把構造方法定義為private的,這樣就可以讓定義類自己控制類的例項化。同時,也要對外提供乙個public的方法,用來得到定義類的例項。當然,在定義類的內部需要初始化來建立自身的乙個例項(保證這個例項必須是唯一的)。

2、單例模式中,需要做哪些工作?

由1所述的來一步一步分析:在乙個類(singleton)中,首先保證構造方法是private的,private singleton(){};

其次,通過初始化來建立例項,在類中宣告乙個靜態的引用(這個靜態引用只在類載入的時候初始化一次),private static singleton singleton= null; ,然後通過乙個靜態**塊來得到乙個唯一的例項(如果引用singleton為null就建立乙個例項,如果不是null,則不做任何處理,也就是沿用已經存在的例項),

static 

}

;

再次,我們就要對外提供乙個方法來訪問類的唯一例項(這個方法必須是靜態的,否則外部沒法訪問這個方法),

public static singleton getinstance()
這樣就完成了單例模式的工作。

3、根據以上兩點,總結運用單例模式的步驟。

一、私有構造方法;

二、宣告乙個靜態的,私有的引用;

三、靜態初始化乙個例項,保證這個例項唯一;

四、對外提供靜態方法,用以訪問唯一例項。

**表現如下:

public class singleton ;  //第一步

private static singleton singleton= null; //第二步

static

}public static singleton getinstance()

}

單例模式學習

通常情況下我們可以讓乙個全域性變數使得乙個物件被訪問,但不能防止你例項化多個物件,乙個最好的方法就是,讓類自身負責儲存他的唯一例項。這個類可以保證沒有其他例項可以被建立,並且他可以提供乙個訪問該例項的方法。一 經典單例 public class singleton public static sin...

單例模式學習

單例模式實現 一.實現雙重校驗鎖 public class singleton public static singleton getsingleton return singleton 特點 通過關鍵字synchronized保證高併發下,初始化物件為單例。缺點效能較差,物件屬性需要volatil...

單例模式學習

注 學習內容來自劉偉老師的技術部落格 史上最全的設計模式 這個系列的部落格深入淺出,引人入勝,值得學習。1.什麼是單例模式?單例模式 singleton pattern 確保某乙個類只有乙個例項,而且自行例項化並向整個系統提供這個例項,這個類稱為單例類,它提供全域性訪問的方法。單例模式是一種物件建立...