Singleton單例模式

2021-06-26 13:55:11 字數 942 閱讀 4074

在訪問許可權控制的帖子裡簡單的提及了一下單例模式.下面做詳細點的介紹.

單例模式是一種常用的軟體設計模式。在它的核心結構中只包含乙個被稱為單例類的特殊類。通過單例模式可以保證系統中乙個類只有乙個例項而且該例項易於外界訪問,從而方便對例項個數的控制並節約系統資源。如果希望在系統中某個類的物件只能存在乙個,單例模式是最好的解決方案。

1.懶漢模式:

在需要使用的時候才進行初始化

public class singletonclass 

public static singletonclass getinstance()

} return instance;

}}

1.將建構函式設定為private型別,禁止其他類通過new instance()的方法來得到物件

2.新增乙個靜態的成員變數,成員變數為這個類本身,說明該類最多只能有乙個物件

3.提供乙個得到類的例項的方法,由於在執行的過程中,如果多個執行緒同時進行類的物件是否為空的這一操作時,可能會因為執行緒的原因而建立了多個物件,這樣就破壞了單例模式的設計思路,所以需要在方法中加入synchroinzed關鍵字來保持程式的正常執行。如果當前類沒有例項,那麼就呼叫私有的構造方法並返回例項,如果已經有了例項的話,那麼就返回該類當前的例項即可.

2.惡漢模式:

當第一次訪問類的時候,初始化出乙個物件來,在以後的過程中,只要使用getinstance的方法就返回這一物件,於懶漢模式在生成該類的時候才初始化不同,惡漢模式在一訪問這個類的時候就進行了初始化。

public class singletonclass 

public static singletonclass getinstance()

}

1.建構函式私有化

2.提供乙個私有的靜態的物件

3.提供方法得到當前類中的這乙個唯一的物件

Singleton 單例 模式

singleton 模式的宗旨在於確保某個類只有乙個例項,別且為之提供乙個全域性訪問點。為了防止其他工作人員例項化我們的類,可以為該類建立唯一乙個構造器,並將構造器的可見 設定為私有。值得注意的是,如果我們建立了其他的非私有的構造器,或者根本沒有為該類提 供構造器,那麼其他人員還是能例項化我們的類。...

Singleton 單例 模式

今天看了,單例模式。感覺他的本質就是,控制類例項的個數。特例就是,控制static變數的唯一性,保證各個程式共享著同一例項。乙個例子 package singleton description 這是乙個單例模式的使用demo author kyle goal 實現乙個類僅有乙個例項 singleto...

單例(Singleton)模式

單例模式的特點 singleton模式包含的角色只有乙個,那就是singleton。singleton擁有乙個私有建構函式,確保使用者無法通過new取得singleton的例項。除此之外,該模式中包含乙個靜態私有成員變數instance與靜態公有方法instance。instance方法負責檢驗並例...