2022年1月23日 星期日

[Geroge]設計模式-單例模式(上)

 關鍵點:

    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

沒有留言:

張貼留言

[leetcode] [KMP] KMP

ABCDABD... ABCDABF... 簡單的說, 傳統解兩字串匹配部分 可能會來個雙迴圈, 哀個比對, 當不匹配的時候, 會將下方列再後移1位 然後不匹配再後移 然而 如果像上放已經有4個屬於匹配的字串, 她就應該直接往後移四位來匹配, 而不是只移動1位 隱藏的思維是, 當...