設計模式 單例模式

2021-09-26 07:27:02 字數 857 閱讀 3811

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