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 }