關鍵點:
1某個類只能有一個實例
2他必須自行創建這個實例
(底米特法則, 單一職責原則: 他自己有這個職責創建, 他創建之後, 其他的類都不需要知道他
創建的過程, 他的創建被封裝在他的內部, 內聚性更高, 對外的耦合性也越低)
3他必須自行向整個系統提供這個實例
解決的問題:
提供全局需要使用的, 唯一的數據訪問 (一般軟體的全局配置, 會需要用到單例模式)
分類:
依創建的時機分類:
餓漢式(hungry) 在類加載時候創建
懶漢式(lazy) 在使用時做判斷, 如果需要再創建
例子:
餓漢式的好處, 就是系統創建這個類的時候, 他就會被創建了, 需要使用, 只要用getInstance就可以了
懶漢式, 特點是初始值為空, 當我們需要getInstance的時候再去判斷是否為空, 再創建
它的好處, 就是在使用的時候才去創建, 相對來說再沒有使用的時候是有節約內存, JVM load class會快一點
https://www.youtube.com/watch?v=w-BlQ5tsZfU&list=PLGmd9-PCMLhb16ZxeSy00qUsBazXgJyfM&index=10
https://github.com/iw5420/geroge-design-pattern
沒有留言:
張貼留言