設計模式 單例模式

2021-08-21 21:38:34 字數 1024 閱讀 6633

我想在使用hibernate或者mybatis時,大家都接觸過單例模式

單例模式分為兩種:  懶漢和餓漢  

懶漢:使用時才去建立--看著名字就能想到

餓漢:一開始就去建立

分別上**:

懶漢:

public class singlelazy 

return copy;

} private singlelazy

}

餓漢: 

public class siglehungry 

public static factorycopy getfactorycopy()

說說兩者區別: 

懶漢在使用時候,在使用的時候才去建立,那麼在響應時間上會更長。並且執行緒不安全;

餓漢模式一開始就建立了,但是有可能在後面我們沒有使用到這個物件,如果建立的物件過於龐大的話,會造成資源的浪費,但是它是執行緒安全的;

執行緒不安全那麼問題就大了,那麼我們也可以吧懶漢模式寫成執行緒安全;

想要實現執行緒安全,其實最常用到的就是加鎖了

public class singlelazy 

return copy;

}}

但是  本著減小鎖粒度的原則,我們還可以這麼寫

public class singlelazy 	

}} return copy;

}}

最後,還可以使用列舉來實現單例

package com.czy.designmodel;

public class useresingle

private useresingle()

public static useresingle getuseresingle()

private enum sigle

private useresingle getuseresingle()

}}

設計模式 單例模式

單例模式 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的序列生成等.但單例的使用需要謹慎,特別是在需要作負載均衡的地方,因為這種程式級的單例模式實際上只能保證在乙個應用中為單例.如果被多個應用載入,還是會...