常見的單例模式

2021-08-31 00:17:57 字數 1582 閱讀 5216

1.單例設計模式

主要作用:讓乙個類在記憶體中只有乙個例項物件

常見的單例設計模式有哪幾種?

1.餓漢式 :不支援懶載入 效率高

/**

* 餓漢式

* @author alan

* */

public class hungrysingleton

private static final hungrysingleton hungrysingleton = new hungrysingleton();

public static hungrysingleton getinstance()

}

2.懶漢式:懶載入 執行緒不安全

/**

* 懶漢式

* @author alan

* */

public class lazysingleton

private static lazysingleton lazysingleton;

public static lazysingleton getinstance()

return lazysingleton; }

}

3.雙重鎖懶漢式:執行緒安全 支援懶載入

/**

* 雙重鎖懶漢式

* @author alan

* */

public class lazydublechecksingleton

//volatile 為了解決指令重排序問題

private volatile static lazydublechecksingleton lazydublechecksingleton;

public static lazydublechecksingleton getinstance()

}}

return lazydublechecksingleton; }

}

4.靜態內部類懶漢式 :執行緒安全 效率高 支援懶載入

/**

* 靜態內部類單例

* @author alan

* */

public class lazyinnerclasssingleton }

public static lazyinnerclasssingleton getinstance()

private static class lazystaticsingleton

}

5.註冊式單例 :執行緒安全,支援懶載入,效率高,且可以避免反射和序列化攻擊

/**

* 註冊式單例

* @author alan

* */

public class registermap

if(null == register.get(name)) catch (exception e)

} return (registermap) register.get(name);

}}

幾種常見的單例模式

單例模式是一種常用的軟體設計模式,其定義是單例物件的類只能允許乙個例項存在。許多時候整個系統只需要擁有乙個的全域性物件,這樣有利於我們協調系統整體的行為。比如在某個伺服器程式中,該伺服器的配置資訊存放在乙個檔案中,這些配置資料由乙個單例物件統一讀取,然後服務程序中的其他物件再通過這個單例物件獲取這些...

常見設計模式之 單例模式

遇到類似的問題 生產編號的產生,售票系統等資料需要同步,馬上想到單例模式.例子 package singleton description 單例模式 author potter date 2012 8 14 下午10 08 16 version v1.0 public static void mai...

python常見設計模式 單例模式

單例就是單個例項,保證所建立的類進行例項化的時候,每次建立的例項都是同乙個,確保在記憶體中只有乙個物件。當建立某個物件需要很大的記憶體空間的時候可以考慮單例模式,或者一些資源操作等導致效能或者損耗。class danlilei instance none def new cls,args,kwarg...