Java Singleton Pattern
在Java等OOP (Object Orientation Programming) Language 中,在使用Object時,必須使用new的語法來創建一個class(類別)的instance(實例),才能對其操作。 而在某些情境下,我們不希望在Runtime中使用太多來自同樣的class的instance以致資源的浪費或是爭奪而導致錯誤發生。 另外,很重要的一點,這也是確保 thread safe 的一種實作。 private static final Object mLock = new Object(); private static volatile MyClass instance = null; public static MyClass getInstance() { if (instance == null) { synchronized(mLock) { if (instance == null) { instance = new MyClass(); } } } return instance; }