01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 | public class SingletonPattern ( ) { private static SingletonPattern singleton = null; private SingletonPattern ( ) { } / / 通過(guò)該方法獲得實(shí)例對(duì)象 public static SingletonPattern GetSingleton ( ) { if ( singleton = = null ) { / / 多個(gè)線(xiàn)程判斷instance都為null時(shí),在執(zhí)行 new 操作時(shí)多線(xiàn)程會(huì)出現(xiàn)重復(fù)情況 singleton = new SingletonPattern ( ) ; } return singleton; } } |
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 | public class SingletonPattern ( ) { private static SingletonPattern singleton = null; private SingletonPattern ( ) { } / / 通過(guò)該方法獲得實(shí)例對(duì)象 public static SingletonPattern GetSingleton ( ) { if ( singleton = = null ) { / / 使用synchronized關(guān)鍵字,防止多個(gè)線(xiàn)程判斷instance都為null時(shí),在執(zhí)行 new 操作時(shí)多線(xiàn)程會(huì)出現(xiàn)重復(fù)情況 synchronized ( SingletonPattern. class ) { if ( instance = = null ) { instance = new SingletonPattern ( ) ; } } } return singleton; } } |
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 | public class SingletonPattern ( ) { private SingletonPattern ( ) { } private static class SingletonHelp ( ) { static SingletonPattern singleton = new SingletonPattern ( ) ; } / / 通過(guò)該方法獲得實(shí)例對(duì)象 public static SingletonPattern GetSingleton ( ) { return singleton; } } |