單列模式簡單來說就是只有乙個例項,並且自己負責建立自己的物件。
雙重鎖模式執行緒安全的兩個方面:執行控制(synchronized)和記憶體可見(volatile)。
/*單列模式*/
public
class
singleton
*//*以例項為返回值的靜態的公有方法,靜態工廠方法*/
/* public static singleton getsingleton()
return instance;
}*//* —————————— —————————— 餓漢模式(記憶體浪費) —————————— —————————— */
/* */
/*指向例項的私有靜態引用,主動建立*/
/* private static singleton singleton = new singleton();
*//*私有的構造方法*/
/* private singleton(){};
*//*以自己例項為返回值的靜態的公有方法,靜態工廠方法*/
/* public static singleton getsingleton()*/
/* —————————— —————————— 雙重鎖模式(執行緒安全效率高) —————————— —————————— */
/* private volatile static singleton singleton;
private singleton(){};
private static singleton getsingleton()}}
return singleton;
}*//* —————————— —————————— 靜態內部類模式 —————————— —————————— */
/* private singleton(){};
*//*只有第一次呼叫getinstance方法時,虛擬機器才載入 inner 並初始化instance ,
只有乙個執行緒可以獲得物件的初始化鎖,其他執行緒無法進行初始化,保證物件的唯一性*/
/* private static singleton getinstance();
private static class inner*/
}
建立模式之單列模式
package com.djk.design.factory.singlen public class single public static single getinstance 這個單列是餓漢式的,一載入類的時候就初始化,優點是沒有執行緒安全的問題,但是缺點是如果類初始化做的東西比較多的話會浪...
Java設計模式之單列模式
單列模式 單一,也就是說乙個類只能有乙個物件。就類似於有些軟體只能開啟一次,當需要保證乙個物件在記憶體中的唯一性時,就需要引入單列模式。建立單列模式分三步操作 1.將建構函式私有化 2.在類中建立乙個本類物件 3.提供乙個公有的介面來返回建立的類 我們訪問類裡面的資料時,分兩種情況 1.通過例項化物...
詳談設計模式之單列模式
掌握設計模式的層次 剛開始學程式設計不久,聽說過什麼是設計模式 由很長時間的程式設計經驗,自己寫了很多 其中用到了設計模式,但是自己卻不知道 學習過了設計模式,發現自己已經在使用了,並且發現了一些新的模式挺好用的 閱讀了很多別人寫的原始碼和框架,在其中看到別人設計模式,並且能夠領會設計模式的精妙和帶...