Java[设计模式]之美――单例模式

2014-11-24 11:33:14 · 作者: · 浏览: 5

单例对象(Singleton)是一种常用的设计模式。在Java应用中,单例对象能保证在一个JVM中,该对象只有一个实例存在,并通过这个唯一实例来向系统提供实例行为。这样的模式有几个好处:

1、某些类创建比较频繁,对于一些大型的对象,这是一笔很大的系统开销。

2、省去了new操作符,降低了系统内存的使用频率,减轻GC压力。

3、有些类如交易所的核心交易引擎,控制着交易流程,如果该类可以创建多个的话,系统完全乱了。应用场合是系统需要唯一该类的实例,比如说资源管理器等。

单例模式类图:

\

下面是示例代码:


[java]
public class Singleton {

// none-lazy load
private static Singleton singleton = new Singleton();
private Singleton(){
}

public static Singleton getSingletonInstance(){
return singleton;
}

// lazy load
/*private static Singleton singleton = null;
private Singleton() {
}

public static Singleton getInstance() {
if (singleton == null) {
synchronized (Singleton.class) {
if (singleton == null) {
singleton = new Singleton();
}
}
}
return singleton;
}*/
}

public class Singleton {

// none-lazy load
private static Singleton singleton = new Singleton();
private Singleton(){
}

public static Singleton getSingletonInstance(){
return singleton;
}

// lazy load
/*private static Singleton singleton = null;
private Singleton() {
}

public static Singleton getInstance() {
if (singleton == null) {
synchronized (Singleton.class) {
if (singleton == null) {
singleton = new Singleton();
}
}
}
return singleton;
}*/
}