Design Pattern
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!");
}
}