設計模式就是我們在實際程式設計過程中,逐漸總結出的一些解決問題的套路。使用單例模式解決什麼問題?單例模式,就是只有乙個例項(例項化物件)。
一般都是 new 物件太費勁了,比如需要執行 1000 行**,耗時 10 秒。
或者是頻繁的 new 新的物件沒有必要。
兩種實現方式
先私有化構造方法,使得不能直接通過 new 呼叫
再宣告乙個私有的類變數(初始值為 new 物件 或者 null,即餓漢和懶漢的區別)
再寫乙個 public 的方法,返回 2 中的私有變數,方法名一般叫 getinstance()
1. 餓漢式
/**
* 餓漢式的單例模式
*/public
class
single
//私有的構造,構造方法私有化,就不能直接使用 new 來建立物件
private
single()
//私有的 single 型別的類變數
private
static single single =
newsingle()
;public
static single getinstance()
}public
class
test
}
2. 懶漢式/**
* 懶漢式單例模式
*/public
class
single1
//再私有化乙個類變數,開始為 null
private
static single1 single1 = null;
//第一次呼叫時,new 乙個物件,後面不會再 new ,直接用同乙個物件
public
static single1 getinstance()
return single1;
}}
懶漢式和餓漢式的區別,就是什麼時候 new。餓漢式,是在類載入之後,還沒人呼叫的時候,就先 new 好乙個物件,以後不論誰來呼叫 getinstance 方法,直接返回事先 new 好的物件。
懶漢式,是在第一次呼叫 getinstance 方法是來 new 物件,以後再呼叫時直接返回第一次 new 好的物件。
Singleton 單例 模式
singleton 模式的宗旨在於確保某個類只有乙個例項,別且為之提供乙個全域性訪問點。為了防止其他工作人員例項化我們的類,可以為該類建立唯一乙個構造器,並將構造器的可見 設定為私有。值得注意的是,如果我們建立了其他的非私有的構造器,或者根本沒有為該類提 供構造器,那麼其他人員還是能例項化我們的類。...
Singleton 單例 模式
今天看了,單例模式。感覺他的本質就是,控制類例項的個數。特例就是,控制static變數的唯一性,保證各個程式共享著同一例項。乙個例子 package singleton description 這是乙個單例模式的使用demo author kyle goal 實現乙個類僅有乙個例項 singleto...
單例(Singleton)模式
單例模式的特點 singleton模式包含的角色只有乙個,那就是singleton。singleton擁有乙個私有建構函式,確保使用者無法通過new取得singleton的例項。除此之外,該模式中包含乙個靜態私有成員變數instance與靜態公有方法instance。instance方法負責檢驗並例...