# 單例模式
#單例模式-->從始至終 只產生乙個示例
#** public class single
public single getinstance()
return instance;}}
# static 修飾變數表示是靜態變數
被 static修飾 表示是靜態變數 沒有表示是例項變數 二者的區別 在於 靜態變數 在 載入類的時候就會分配記憶體 可以用類名直接訪問 例項變數 會在類例項化的時候 進行記憶體分配 會在記憶體中有多個備份 互不影響 靜態變數 只會在記憶體中有乙個
例項變數 只有在用的時候 才會例項化 但是靜態變數 只要載入類 就會例項化 但是只會有乙個
要點 1 。 靜態全域性變數 instance
2. 構造方法 私有化 private 這樣 非子類都不能訪問
3. public 的getinstance方法 來例項化物件
# 如果多個執行緒 同時訪問 有可能例項化多個物件出來
比如 執行緒一 執行到 if判斷的時候 sleep一秒鐘 執行緒二 執行過來if 這是 例項已經被建立了 但是 執行緒一 仍然 任務 instance 是null 於是又建立了新 的乙個
#解決辦法 使用 synchronize 同步**塊 當 執行緒一 執行該部分**時 執行緒二 會等待他 執行結束 在執行 該部分**
**************************完美解決方式*********************************
*//**
* 使用靜態內部類來實現 靜態內部類只能訪問外部類的靜態成員 靜態內部類不能new
* @author arthas**/
public class single
// 2 乙個公共的靜態內部類 裡面只有乙個靜態的最終類 例項物件 instance
public static class singleton1
//乙個公共的構造方法 得到instance例項 靜態變數可以通過 類名點點的方式直接獲取
public static single 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的序列生成等.但單例的使用需要謹慎,特別是在需要作負載均衡的地方,因為這種程式級的單例模式實際上只能保證在乙個應用中為單例.如果被多個應用載入,還是會...