设计模式之略见一斑(单例模式singleton)
单例模式是属于比较常用的一例,一个类(class)在内存中只有一个实例。
常用方式如下:
第一种(饿汉式):
public class Singleton { private Singleton(){} //在自己内部定义自己一个实例,是不是很奇怪? //注意这是private 只供内部调用 private static Singleton instance = new Singleton(); //这里提供了一个供外部访问本class的静态方法,可以直接访问 public static Singleton getInstance() { return instance; } } public class Singleton { private static Singleton instance = null; public static synchronized Singleton getInstance() { //这个方法比上面有所改进,不用每次都进行生成对象,只是第一次 if (instance==null) instance=new Singleton(); return instance; } } public final class Singleton implements Serializable{ private Singleton () { } private static final Singleton INSTANCE = new Singleton (); public static Singleton getInstance() { return INSTANCE; } private Object readResolve() throws ObjectStreamException { return INSTANCE; } }