1 import org.apache.juli.logging.Log; 2 3 /** 4 * 通过此Cache记录命中率 5 * @author Administrator 6 * 7 */ 8 public class LogCache implements Cache{ 9 /**记录请求次数*/ 10 private int requests; 11 /**记录命中次数*/ 12 private int hits; 13 private Cache cache; 14 public LogCache(Cache cache) { 15 this.cache=cache; 16 } 17 @Override 18 public void putObject(Object key, Object value) { 19 cache.putObject(key, value); 20 } 21 @Override 22 public Object getObject(Object key) { 23 requests++; 24 Object obj=cache.getObject(key); 25 if(obj!=null) { 26 hits++; 27 } 28 System.out.println("hits:"+hits*1.0/requests); 29 return obj; 30 } 31 @Override 32 public Object removeObject(Object key) { 33 return cache.removeObject(key); 34 } 35 @Override 36 public void clear() { 37 cache.clear(); 38 } 39 @Override 40 public int size() { 41 // TODO Auto-generated method stub 42 return cache.size(); 43 } 44 @Override 45 public String toString() { 46 // TODO Auto-generated method stub 47 return cache.toString(); 48 } 49 public static void main(String[] args) { 50 LogCache logCache= 51 new LogCache(new PertetualCache()); 52 logCache.putObject("A", 100); 53 logCache.putObject("B", 200); 54 logCache.putObject("C", 300); 55 logCache.putObject("", 300); 56 logCache.getObject("D"); 57 logCache.getObject("A"); 58 logCache.getObject("B"); 59 System.out.println(logCache); 60 } 61 62 }
浙公网安备 33010602011771号