回覆列表
  • 1 # 使用者2458114238191884

    優點:

    1.在單例模式中,活動的單例只有一個例項,對單例類的所有例項化得到的都是相同的一個例項。這樣就 防止其它物件對自己的例項化,確保所有的物件都訪問一個例項

    2.單例模式具有一定的伸縮性,類自己來控制例項化程序,類就在改變例項化程序上有相應的伸縮性。

    3.提供了對唯一例項的受控訪問。

    4.由於在系統記憶體中只存在一個物件,因此可以 節約系統資源,當 需要頻繁建立和銷燬的物件時單例模式無疑可以提高系統的效能。

    5.允許可變數目的例項。

    6.避免對共享資源的多重佔用。

    缺點:

    1.不適用於變化的物件,如果同一型別的物件總是要在不同的用例場景發生變化,單例就會引起資料的錯誤,不能儲存彼此的狀態。

    2.由於單利模式中沒有抽象層,因此單例類的擴充套件有很大的困難。

    3.單例類的職責過重,在一定程度上違背了“單一職責原則”。

    4.濫用單例將帶來一些負面問題,如為了節省資源將資料庫連線池物件設計為的單例類,可能會導致共享連線池物件的程式過多而出現連線池溢位;如果例項化的物件長時間不被利用,系統會認為是垃圾而被回收,這將導致物件狀態的丟失。

  • 中秋節和大豐收的關聯?
  • 夏天怎麼避免汽車暴曬?