设计一个简单的缓存容器

    在项目的开发中遇到一个这样的问题:没一个系统用户要有很多与之关联数据,而由于一些页面的加载是由这些数据来判断过滤的,所以与数据库交互加载这样数据的时间变的不可忍受,尤其是大数据量的时候。所以一个比较简单但又实用的方法就是将这些数据缓存起来,供后来调用。
    在设计与实现这个简单缓存容器的时候,我想参考一下Microsoft的Application Block:Caching Framework,所以为了能使自己的设计水平提高,在这里我先把参考Caching Framework前的设计想法写下来,以备在后面比较,希望能有大的收获
    在开发的过程中,采用迭代开发的思想,不是赶时髦,只是想让自己持续的看到成果,不然的话会让我失去信心的,主要迭代周期一起各迭代周期的内容如下:
    一期:支持最基本的插入缓存数据、自定义键字段、根据键获取缓存数据的方法。
    二期:支持缓存数据的过期、依赖属性的应用,处理缓存数据的过期与同步问题,为缓存数据添加同步支持。
    三期:重构代码以支持更广的缓存数据应用。

    下面我按照时间顺序说明的我设计过程:
    一期:
    
    初期想法:设计一个CacheManager类,它有两个方法,Add(object key,object value),Delete(object key),Get(object key),三个方法,内部实现也就是基本的Cache方法包装。

    参考了Caching Framework后的改进想法:
    1.将Cache的管理功能与存储分开,提取一个CacheManager来管理执行诸如一些添加、删除、获取、清除的方法,添加一个CacheStorage类来处理存储,而且由于存储方式可能有不同,所以设计一个接口,其他不同的实现方式来实现。
    2.包装Cache项,加入Metadata如:过期、依赖、回调、优先级等方法。

posted on 2004-11-24 09:49  纯爷们  阅读(696)  评论(0编辑  收藏  举报

导航