设计一个简单的缓存容器

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 15:47   3633   0

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

下面我按照时间顺序说明的我设计过程:
一期:

初期想法:设计一个CacheManager类,它有两个方法,Add(object key,object value),Delete(object key),Get(object key),三个方法,内部实现也就是基本的Cache方法包装。

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

转载于:https://www.cnblogs.com/Masterpiece/archive/2004/11/24/67897.html

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP