搬磚方法論:保持約束的單例

單例作為一種可供全局使用的唯一對(duì)象,而被普遍使用。但是能夠這么做不代表就應(yīng)該這么用。

單例在帶來(lái)便利的同時(shí)也應(yīng)該受到約束,如果一個(gè)單例遍布每個(gè)模塊各處,這本身就是錯(cuò)誤的使用方式,其缺點(diǎn)如下:

  • 如果需要修改API,則涉及范圍過(guò)大
  • 各功能模塊會(huì)直接將依賴關(guān)系與其綁定
  • 在使用時(shí)可能會(huì)調(diào)用不正確的API、錯(cuò)誤的調(diào)用順序又或者更改其內(nèi)部狀態(tài)

所以在使用單例時(shí),從API設(shè)計(jì)上來(lái)講,允許同一API可以反復(fù)被調(diào)用、降低時(shí)序耦合的幾率、封裝其不必要的接口,僅在各模塊啟動(dòng)入口對(duì)其引用。

注:還有一種與單例模式非常相似的模式叫做 環(huán)境上下文(Ambient Context),它所含有的缺點(diǎn)與單例一樣。它在使用時(shí)與單例的區(qū)別是:單例模式是始終保持唯一的對(duì)象,環(huán)境上下文是允許對(duì)象變更的。


更多文章詳見(jiàn)主頁(yè):www.aihailan.com

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容