主要優勢:數據庫
一、提供了對惟一實例的受控訪問。性能
二、因爲在系統內存中只存在一個對象,所以能夠節約系統資源,對於一些須要頻繁建立和銷燬的對象單例模式無疑能夠提升系統的性能。.net
三、容許可變數目的實例。設計
主要缺點:對象
一、因爲單利模式中沒有抽象層,所以單例類的擴展有很大的困難。內存
二、單例類的職責太重,在必定程度上違背了「單一職責原則」。資源
三、濫用單例將帶來一些負面問題,如爲了節省資源將數據庫鏈接池對象設計爲的單例類,可能會致使共享鏈接池對象的程序過多而出現鏈接池溢出;若是實例化的對象長時間不被利用,系統會認爲是垃圾而被回收,這將致使對象狀態的丟失。get