單例模式有以下的特點:
單例類只能有乙個例項。
單例類必須自己建立自己的唯一例項。
單例類必須給所有其他物件提供這一例項。
單例模式的寫法有好幾種,如懶漢式單例、餓漢式單例。
一、餓漢式單例
//餓漢式單例類.在類初始化時,已經自行例項化
public
class
singleton1
private
static
final singleton1 single = new
singleton1();
//靜態工廠方法
public
static
singleton1 getinstance()
}
漢式在類建立的同時就已經建立好乙個靜態的物件供系統使用,以後不再改變,所以天生是執行緒安全的
二、懶漢式單例
私有化建構函式。
宣告本類引用型別變數,但是不要建立物件。
宣告乙個公共靜態的方法獲取本類的物件,獲取之前先判斷是否已經建立了本類的物件了,如果已經建立了就不要在建立直接返回即可,如果還沒有建立,那麼就先建立本類的引用型別變數,然後再返回。
publicclass
single
//宣告本類引用型別變數,但是不要建立物件
private
static
single s;
//宣告乙個公共靜態的方法獲取本類的物件
public
static
single getinstance()
return
s; }
}
1、在getinstance方法上加同步
publicstatic
single getinstance()
}
return
s; }
2、雙重檢查鎖定
publicstatic
single getinstance()
}
}return
s; }
設計模式之單例模式
前一段時間買了一本秦小波寫的 設計模式之禪 網上對這書的評價很高。現在還沒有看很多,但是有些地方頗有感觸,也並不是所有的地方都能看懂,但是會慢慢研究的。自己對於設計模式的感覺就是乙個字 牛!感覺會23種設計模式並且會熟練運用的人,真的就是大師級的牛人了,設計模式是乙個專案主管或者架構師一定要會的東西...
設計模式之單例模式
package com.xie.singleton public class singleton 提供乙個共有的靜態的入口方法 public static singleton getinstance 懶漢式 延遲載入 提供乙個私有的靜態的成員變數,但不做初始化 private static sing...
設計模式之 單例模式
單例模式 singleton 保證乙個類僅有乙個例項,並提供乙個訪問它的全域性訪問點。單例模式 單件模式 使用方法返回唯一的例項 public class singleton private static singleton instance public static singleton geti...