Design Pattern-SingleTon
適配器模式(SingleTon)
- 為一種創建模式
- 使用時機 : 程式中某一類別實體化唯一的時候使用
- 目的 :
- 讓使用的實體化類別唯一
- 可是用在實體化資料庫或是開銷很大的類別
- 優點 :
- 只有唯一一個實體化,減少了內存開銷及性能開銷
- 避免資源重複佔用
- 缺點 :
- 一般沒有對外API導致擴展困難
- 只有一個實例所以測試困難
Flow chart
Image Not Showing
Possible Reasons
- The image was uploaded to a note which you don't have access to
- The note which the image was originally uploaded to has been deleted
Learn More →
舉例
惡漢模式
- 通常在程式開始實做實體化
- 可以看到成是在global時已經做實體化,可以確保程式能第一時間使用, 但如果該實體化的類別在後續程式中沒有使用則會變成額化的性能開銷
懶散模式
- 在有需要時才做實體化, 這樣可以叫隨意的調度什麼時候實體化該類別,但要注意線程的控制問題
- 如果多的線程在instance確認為null時會破壞Singleton的設計方式
github : https://github.com/GU-Lin/Design_Pattern_Practice/tree/main/Creational/Singletone
source : https://hypc-pub.github.io/design-patterns/patterns/singleton-pattern.html