單例模式和多例模式的區別(轉)


原文鏈接:[設計模式] 多例模式與單例模式區別

多例模式與單例模式都禁止外界直接將之實例化,同時通過靜態工廠方法向外界提供循環使用的自身的實例。它們的不同在於單例模式僅有一個實例,而多例模式則可以有多個實例。

多例模式往往具有一個聚集屬性,通過向這個聚集屬性登記已經創建過的實例達到循環使用實例的目的。一般而言,一個典型的多例類具有某種內部狀態,這個內部狀態可以用來區分各個實例,而對應於每一個內部狀態,都只有一個實例存在。

原文鏈接:單例模式優缺點

主要優點:

1、提供了對唯一實例的受控訪問。

2、由於在系統內存中只存在一個對象,因此可以節約系統資源,對於一些需要頻繁創建和銷毀的對象單例模式無疑可以提高系統的性能。

3、允許可變數目的實例。

 

主要缺點:

1、由於單利模式中沒有抽象層,因此單例類的擴展有很大的困難。

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

3、濫用單例將帶來一些負面問題,如為了節省資源將數據庫連接池對象設計為的單例類,可能會導致共享連接池對象的程序過多而出現連接池溢出;如果實例化的對象長時間不被利用,系統會認為是垃圾而被回收,這將導致對象狀態的丟失。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM