單例的實現(xiàn)
單例模式的優(yōu)點:
單例模式在內(nèi)存中只有一個實例,減少了內(nèi)存開支。特別是一個對象需要頻繁的創(chuàng)建、銷毀時,而創(chuàng)建與銷毀的性能又無法優(yōu)化,單例模式的優(yōu)勢就非常明顯。
單例模式只生成一個實例,減少了系統(tǒng)性能開銷,當(dāng)一個對象的產(chǎn)生需要比較多的資源時,如讀取配置、產(chǎn)生其他依賴對象時,則可以通過在應(yīng)用啟動時直接產(chǎn)生一個單例對象,然后永久駐留內(nèi)存的方式來解決。
單例模式可以避免對資源的多重占用。
單例模式可以在系統(tǒng)設(shè)置全局的訪問點,優(yōu)化和共享資源訪問。
單例模式的缺點:
單例模式一般沒有接口,擴展很困難,除了修改代碼基本上沒有第二種途徑實現(xiàn)。
單例模式對測試是不利的。在并行開發(fā)環(huán)境中,如果單例模式?jīng)]有完成,是不能進(jìn)行測試的。
單例模式與單一職責(zé)原則有沖突。