設計模式是一套被反覆使用、多數人知曉的、經過分類的、**設計經驗的總結。分為建立型模式,結構性模式,行為模式,建立型模式就是處理物件建立的設計模式,建立型模式有兩個主導思想構成。一是將系統使用的具體型別封裝起來,二是隱藏這些具體類的例項建立和結合的方式。結構型模式通過對多個類和物件進行組合得到複雜結構的類,一般使用繼承或者成員變數引用形式來實現,行為型模式:行為模式不僅表達了物件和類,還表達了他們之間的互動,涉及到了物件和演算法的分配.
單例模式就屬於建立型模式,對某個類只能存在乙個物件例項,並且該類只提供乙個取得物件例項的方法.特點就是構造器私有化,類內部建立物件,向外暴露乙個公共的靜態方法.
餓漢式 在類裝載的時候就完成了例項化,但是如果從始至終從未使用過這個例項,則會造成記憶體浪費.
public
class
hungry
private
final
static hungry hungry =
newhungry()
;public
static hungry getinstance()
}
懶漢式
class
singleton
public
static singleton getinstance()
}return singleton;
}}
雙重檢測
public
class
lazyimprove
else}}
private
volatile
static lazyimprove lazy;
/** * 雙重檢測 dcl懶漢式
* @return
*/public
static lazyimprove getinstance()
}}return lazy;
}/**
* 多執行緒併發
*/public
static
void
main
(string[
] args)
throws exception
}
靜態內部類實現
public
class
holder
public
static holder getinstance()
public
static
class
innerclass
}
列舉類
/**
* enum jdk1.5之後 本身也是乙個class類
* @author maomao
*/public
enum enumsingle
}class
test
}
設計模式 單例模式
單例模式 singleton pattern 是乙個比較簡單的模式,其定義如下 ensure a class has only one instance,and provide a golbal point of acess to it.確保某乙個類只有乙個例項,而且自行例項化並且向整個系統提供這個...
設計模式 單例模式
class testsingleton static public function instance return self testsingleton private function clone public function setsinvar sinvar public function ...
設計模式 單例模式
單例模式的目的是保證類在系統中只被例項化一次,由該唯一的例項來為系統提供服務.單例模式主要用於保證服務的統一,比如獲取統一的編號服務,模仿oracle的序列生成等.但單例的使用需要謹慎,特別是在需要作負載均衡的地方,因為這種程式級的單例模式實際上只能保證在乙個應用中為單例.如果被多個應用載入,還是會...