本文共 2362 字,大约阅读时间需要 7 分钟。
?????Singleton Pattern????????????????????????????????????????????????????????????????????????????????????????????????????????????????
????
?????????????????????????????????????????????????????????????????????????????????????????????????????import java.lang.reflect.Constructor;public class SingletonTest { public static void main(String[] args) { Singleton singleton = Singleton.getSingleton(); try { Class singletonClass = Singleton.class; Constructor constructor = singletonClass.getDeclaredConstructor(null); constructor.setAccessible(true); Singleton singletonByReflect = constructor.newInstance(); System.out.println("singleton : " + singleton); System.out.println("singletonByReflect : " + singletonByReflect); System.out.println("singleton == singletonByReflect : " + (singleton == singletonByReflect)); } catch (Exception e) { e.printStackTrace(); } }}???????????????????????????????????????
?????
????????????????????????????????????????????????????????????public class SingletonTest { public static void main(String[] args) { Singleton singleton = Singleton.getSingleton(); try { ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("tempFile")); oos.writeObject(singleton); ObjectInputStream ois = new ObjectInputStream(new FileInputStream("tempFile")); Singleton singletonBySerialize = (Singleton) ois.readObject(); System.out.println("singleton : " + singleton); System.out.println("singletonBySerialize : " + singletonBySerialize); System.out.println("singleton == singletonBySerialize : " + (singleton == singletonBySerialize)); } catch (Exception e) { e.printStackTrace(); } }}?????????????????????????????????????
??????????
??????????????????????????????????????????private Singleton() { if (singleton != null) { throw new RuntimeException("Singleton constructor is called..."); }}???????????????????????????????
?? readResolve ??
???????readResolve ????????????????????????private Object readResolve() { return getSingleton();}????????????? readResolve ???????????????????????????
????????????????????????????????????????????????
转载地址:http://cns.baihongyu.com/