1 package jfun.yan.factory; 2 3 9 public class CachingPool<T> implements Pool<T> { 10 private transient T v = null; 11 private transient boolean pooled = false; 12 private void readObject(java.io.ObjectInputStream in) 13 throws ClassNotFoundException , java.io.IOException { 14 in.defaultReadObject(); 15 this.pooled = false; 16 } 17 18 public T getInstance(Factory<T> factory) { 19 if(!pooled){ 20 v = factory.create(); 21 pooled = true; 22 } 23 return v; 24 } 25 public T getPooledInstance(T def) { 26 return pooled?v:def; 27 } 28 31 public boolean isPooled(){ 32 return pooled; 33 } 34 } 35 | Popular Tags |