首页 › 月度存档 › 10月 2013

单例模式

单例:确保一个类只有一个实例,并要求提供一个全局的访问点。

要点:
(1)构造私有化,确保不能被外界new。
(2)只能通过全局访问点进行访问,以返回单个实例。
单例的好处:
(1)节省内存,因为限制了实例的个数。
(2)有利于垃圾回收。

private Singleton(){
}
private static Singleton singleton = new Singleton();
public static Singleton getSingleton(){
return singleton;
}

这种做法在JVM加载类的时候马上就会创建此类的唯一实例,保证访问静态变量singleton 之前,一定创建好此实例。(饿汉法)

private Singleton(){
}
private static Singleton singleton = null;
public static Singleton getSingleton(){
if(singleton == null){
singleton = new Singleton();
}
return singleton;
}

首先利用静态变量singleton记录Singleton的实例,但是用实例时,若不存在,则利用私有构造器创建一个实例并将其赋值到singleton静态变量。如果不需要这个实例,则永远不会产生。

singleton