进阶:Java中用动态代理类实现记忆功能
作者: wwty , 出处:赛迪网, 责任编辑: 李春禹,
2007-12-27 13:17
最简单直接的方法来缓存返回值可以通过修改这个类来实现:添加一个map来保存之前计算得到的值,如下: import java.util.hashmap;通过使用decorator模式,要分开计算代码和缓存代码是很容易的.首先,定义一个接口,里面定义基本的方法.
这是很之前的实现pibinarydigitscalculator的一种简单的refactored版本. cachingbinarydigitscalculator包装了binarydigitscalculator句柄,并增加了缓存,供 calculatebinarydigit的方法调用. 这种方法提高了代码的可读性与可维护性. 用户不能直接使用 binarydigitscalculator接口来实现算法,所以,如果需要关闭缓存块,将是很容易实现的.
还有,合适的测试程序很容易写出来.比如,我们写一个假的binarydigitscalculator实现,每次calculatebinarydigit被调用,赋予相同的参数,返回不同的值. 这样,我们就能测试缓存是否工作了,因为如果每次都返回相同的值,则证明缓存是正常工作了. 这种测试在之前那种简单的实现是不可能的
- 本文关键词:

