單例模式
英文名稱:(Singleton Pattern)
定義:確定某一個類僅僅用一個執行個體,并且自行執行個體化并向整個系統提供這個執行個體
UML圖:

(依照書本上的總結,自己了解并不太深刻。。)
單例模式的長處:
1、單例模式記憶體中僅僅有一個執行個體,降低記憶體開支,一個對象須要頻繁的建立和銷毀。
使用單例模式具有非常大的優勢。
2、單例僅僅生成一個執行個體,降低系統的性能開銷。
3、單例模式能夠在避免對資源的多重占用。
4、單例模式能夠在系統設定全局的訪問點。優化和共享資源訪問。
單例模式的缺點:
1、單例模式一般沒有接口,擴充非常困難。
2、單例對測試不利
3、單例與單一職責原則有沖突。
單例的使用場景:
1、要求生成唯一序列号的環境
2、在整個項目中須要一個共享訪問點或訪問資料
3、建立一個對象須要消耗的資源過多
4、須要定義大量的靜态常量和靜态方法。
單例的拓展
通過單例的拓展,讓類僅僅産生兩個或者多個執行個體對象。
UML圖
private static List<String> listNumofEmperor = new ArrayList<String>();
//表示目前編号
private static int currentNum = 0;
//建立出全部的對象
static{
for(int i=0;i<maxNum;i++)
listEmperor.add(new Emperor("執行個體化.."+(i+1)+"..對象"));
}
private Emperor(String name){
listNumofEmperor.add(name);
public static Emperor getEmperor(){
Random random = new Random();
currentNum = random.nextInt(maxNum);
return listEmperor.get(currentNum);
public void say(){
System.out.println(listNumofEmperor.get(currentNum));