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

沒有留言:

張貼留言

AI 時代的軟體工程

  AI 時代的軟體工程:從「代碼寫手」到「系統指揮官」的轉型之路 2026 年,軟體工程正經歷自編譯器發明以來最大的範式轉移。AI 不再只是 IDE 側邊欄的輔助工具,而是進化為具備自主性的 Agent(代理人) ,這場變革正重新定義「工程師」的核心價值。 一、 現狀:AI 普...