Design Pattern--Singleton

来源:互联网 发布:知达常青藤中学校官网 编辑:程序博客网 时间:2024/05/21 12:50

Design Pattern

参考 ooDesign


Singleton

Singletons used for centralized management of internal or external resources

(1 ) Only one instance of a class is created: it involves only one class which is responsible to instantiate itself

(2) provides a global point of access to the object.: can be used from everywhere

synchronized :可以完成线程安全的需求,但是若已经创建后则同步这一动作是多余且降低效率的。若程序对这部分的效率不关注则使用该方法即可。

class Singleton{       private static Singleton instance;       private Singleton()      {           ...       }       public static <strong>synchronized</strong> Singleton getInstance()      {           if (instance == null)                       instance = new Singleton();             return instance;       }   ...     public void doSomething()     {           ...          }}

//Lazy instantiation using double locking mechanism.class Singleton{private static Singleton instance;private Singleton(){System.out.println("Singleton(): Initializing Instance");}public static Singleton getInstance(){if (instance == null){synchronized(Singleton.class){if (instance == null){System.out.println("getInstance(): First time getInstance was invoked!");instance = new Singleton();}}            }return instance;}public void doSomething(){System.out.println("doSomething(): Singleton does something!");}}




0 0