設計模式 七 單例模式

2021-08-21 13:41:55 字數 1731 閱讀 3727

1、介紹

2)餓漢式單例模式

/**

* @author chenpeng

* @date 2018/7/18 22:22

* 餓漢式單例模式

* 載入類的時候就例項化靜態屬性

*/public class singleton

/*** 3、開放的訪問方法

* 方法沒有同步,效率高

* @return

*/public static singleton getnewinstance()

}

3)懶漢式單例模式(單例物件延遲載入)

/**

* @author chenpeng

* @date 2018/7/20 23:42

* 懶漢式單例模式

*/public class singletonlazy

/*** 3、提供外部訪問方法

* 需要提供同步方法,防止併發問題

*/public static synchronized singletonlazy getnewinstance()

return newinstance;

}}

4)雙重檢查鎖實現單例模式

/**

* @author chenpeng

* @date 2018/7/20 23:42

* 雙重檢查鎖單例模式

*/public class singletonlazy

/*** 3、提供外部訪問方法

*/public static singletonlazy getnewinstance() }}

}return newinstance;

}}

5)靜態內部類實現單例模式

/**

* @author chenpeng

* @date 2018/7/18 22:22

* 靜態內部類實現單例模式

* 這種方式:執行緒安全、呼叫效率高,並實現了延時載入。

*/public class singleton

//2、私有構造方法

public singleton()

/*** 3、開放的訪問方法

* 方法沒有同步,效率高

* @return

*/public static singleton getnewinstance()

}

6)列舉實現單例模式

/**

* @author chenpeng

* @date 2018/7/22 23:11

* 列舉實現單例模式

* 沒有懶載入模式

*/public enum enumsingleton

}

7)使用選擇

1、反射可以破解上面幾種(不包括列舉)實現方式!(可以在構造方法中手動丟擲異常控制)

2、反序列化可以破擊上面幾種(不包括列舉式)實現方式!

可以通過定義readresolve( )防止獲得不同的物件。反序列化時,如果物件所在類定義了readresolve( ),

設計模式課時七 單例模式

單體模式的不同變現形式 1.餓漢單例模式 2.懶漢單例模式 3.多例模式 1.餓漢單例模式 public class singleton 建立私有靜態例項,意味著這個類第一次使用的時候就會進行建立 private static singleton instance new singleton pub...

(七)單例模式

單例模式是指的什麼意思?那麼,要實現單例模式,有幾個要點 單例模式的應用場景有哪幾個呢?public class singleton 最後,需要有乙個共有的,靜態方法 這個方法,負責建立唯一的例項,並且返回這個唯一的例項 必須考慮到可能會出現的多執行緒併發訪問安全的問題 就是說,可能會有多個執行緒同...

設計模式 單例模式

單例模式 singleton pattern 是乙個比較簡單的模式,其定義如下 ensure a class has only one instance,and provide a golbal point of acess to it.確保某乙個類只有乙個例項,而且自行例項化並且向整個系統提供這個...