public class singleton
/** private 禁止外部類呼叫該例項,防止對該例項物件進行修改操作
* 使用volatile的原因是防止在jvm層面對生成例項物件時,指令的重排序問題
* 將instance = null,該種設計方式是一種「懶漢式」的設計,只有使用的時候才會產生例項物件*/
private static volatile singleton instance = null;
public static singleton getinstance() }}
return instance; }}
/** 該設計為單例模式中餓漢式的初級版本,所謂餓漢式:
* 在類載入時,就會例項化乙個例項物件*/
public class singleton1
/** static 在類載入的時候,生成了乙個例項物件,該種方式的缺點:
* 1. 無法達到需要使用時再建立的效果,如果該例項物件非常大,會消耗不必要的系統資源。
*/private static singleton1 instance = new singleton1();
public static singleton1 getinstance()
/** 公升級版的餓漢式設計,可以解決初級版本的不足*/
class singleton2
/** 採用內部類的形式去生成乙個例項物件,這種方式做到了,只有當呼叫getinstance();時,才會產生例項物件*/
private static class singletonholder
public static singleton2 getinstance()
}
設計模式 單例模式
單例模式 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的序列生成等.但單例的使用需要謹慎,特別是在需要作負載均衡的地方,因為這種程式級的單例模式實際上只能保證在乙個應用中為單例.如果被多個應用載入,還是會...