單例模式能如上面程式碼中的實現方式,最主要依賴於我們可以在私有的構造器中完成初始化的任務,而需要延遲或是從外部獲取相關的引數。否則,我們就必須要採取延遲初始化的方式,一種典型實現方式的程式碼如下:public class Configuration { private static final Configuration instance = null; private Configuration() { // init } public static Configuration getInstnace() { if (instance == null) { instance = new Configuration(); } return instance; } // .. other methods } 注意getInstance方法,我們增加了一個if語句來實現延長初始化和只初始化一次。這段程式碼在單執行緒的情況下是沒有問題的,但如果放在多執行緒中,就有可能產生多個Configuration例項了,從而破壞單例模式,是系統可能產生資料不一致的結果。如果解決在多執行緒裡的問題,我們在下一篇文章中再為大家分析。,本站保留追究責任的權利。
單例模式能如上面程式碼中的實現方式,最主要依賴於我們可以在私有的構造器中完成初始化的任務,而需要延遲或是從外部獲取相關的引數。否則,我們就必須要採取延遲初始化的方式,一種典型實現方式的程式碼如下:public class Configuration { private static final Configuration instance = null; private Configuration() { // init } public static Configuration getInstnace() { if (instance == null) { instance = new Configuration(); } return instance; } // .. other methods } 注意getInstance方法,我們增加了一個if語句來實現延長初始化和只初始化一次。這段程式碼在單執行緒的情況下是沒有問題的,但如果放在多執行緒中,就有可能產生多個Configuration例項了,從而破壞單例模式,是系統可能產生資料不一致的結果。如果解決在多執行緒裡的問題,我們在下一篇文章中再為大家分析。,本站保留追究責任的權利。