單例模式(singleton)是軟體開發中較常用的一種設計模式思想,在有些情況下,某乙個事物我們只需要生成乙個例項物件即可。比如,一台計算機可以同時連線多台印表機,但在某一時刻只能處理其中某一台的列印業務,因此計算機的列印程式只能有乙個,所以就要通過單例模式來實現該功能以避免兩個列印作業同時輸出到印表機中。
簡單來說,單例模式就是在整個應用程式的生命週期中,單例類的例項物件最多隻存在乙個。
簡單單例模式特點:
1.類自身負責儲存並封裝它的唯一例項;
2.這個類可以保證沒有其他例項可以被建立;
3.這個類提供乙個訪問該例項的全域性方法getinstance( )。
懶漢式單例:
單例類的唯一例項物件在你第一次呼叫getinstance( )時被例項化,如果你不呼叫getinstance( ),這個唯一物件是不存在的,為null。形象點說,懶漢式單例就是你不用它,它不會自己例項化,
public class singleton
; public static singleton getinstance()
return instance;
}}
這個實現保證了只有在呼叫該類的時候物件才被初始化(延遲建立),但是缺點是執行緒不安全,當多個執行緒同時訪問的時候,極可能例項化出多個物件。
餓漢式單例:
餓漢式與懶漢式相反,餓了會自己主動找東西吃,所以不用人催自己建立了唯一的單例物件,
public class singleton
; //私有化構造方法
public static singleton getinstance()
}
此實現是執行緒安全的,多個執行緒進行訪問時不會例項化多個物件,因為static屬性只會被初始化一次,缺點是無論是否用到該例項都會被初始化,無故的開銷變大。
以上
設計模式 單例模式
單例模式 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的序列生成等.但單例的使用需要謹慎,特別是在需要作負載均衡的地方,因為這種程式級的單例模式實際上只能保證在乙個應用中為單例.如果被多個應用載入,還是會...