等著吃謝師宴無聊發個文
來講一下Singleton Pattern
基本上就是創造一個獨一無二的物件,在程式中,確保一個類別只有一個物件。
基本上就是創造一個獨一無二的物件,在程式中,確保一個類別只有一個物件。
先看UML圖
基本上相當簡單,就是透過getInstance()來取得這唯一的物件,而singleton指向的就是我們的唯一物件
接來看個範例
從執行結果可以看出,instance1與instance2所取得的都是相同的物件,外部想要自己new一個新的物件也沒辦法,因為constructor被設成private了
在使用Singleton Pattern時,要注意的一點就是多執行緒的情形下有對這唯一的物件進行存取的話,要注意一下這部分的處理
在範例中,getInstance()裡使用Double-Check-Locking來檢查是否已經建立實體
範例:點我