單例的實現(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)]有完成踊挠,是不能進行測試的乍桂。
單例模式與單一職責(zé)原則有沖突。