学习之路三十四:再一次重构缓存设计

距离上一篇:“学习之路十九:模仿ASP.NET的缓存依赖自定义缓存机制” 已经有很长时间了,这段时间正好在做项目优化,所以对缓存这块做了重构。

重构的内容包括:轮询+XML+特性,通过这三种方式来使得缓存变的简单。

一丶XML管理SQL

  项目中DAL层可以看到到处分散的SQL语句,所以这次我统一通过XML来集中管理SQL语句,然后读取XML获取相应的SQL。

  当然如果你不想每次读取,也可以把这些SQL都缓存起来,也是一个不错的选择。

  示例:

  1 <?xml version="1.0" encoding="utf-8" ?>
  2 <!--
  3     1. &lt;      ==    < 
  4     2. &gt;     ==    >
  5     3. &amp;   ==   &
  6     4. &apos;  ==    '
  7     5. &quot;  ==    "
  8 -->
  9 <CacheSQL>
 10   <PC>
 11         //对应的SQL -- 通过节点读取对应的SQL 18   </PC>
 35   <ICON>
 36         //对应的SQL
 37   </ICON>
193 </CacheSQL>

 

二丶通过Attribute来标记该数据需要缓存

  通过自定义特性来灵活控制该数据时候要缓存。

 1     [AttributeUsage(AttributeTargets.Field, AllowMultiple = false, Inherited = false)]
 2     public class CacheAttribute : Attribute
 3     {
 4         private bool _isCache = true;
 5 
 6         public CacheAttribute(bool isCache)
 7         {
 8             _isCache = isCache;
 9         }
10 
11         public bool IsCache
12         {
13             get { return _isCache; }
14         }
15     }
16 
17     public enum CacheType
18     {
19         [Cache(true)]
20         Tax = 0,
21         [Cache(true)]
22         ProductClass = 1,
70     }

  那么我就可以在程序启动的时候去检查每个Type是否添加了缓存特性,如果有则缓存该数据

 

三丶总结

  这次重构的特点:让缓存数据变的更加灵活了。

  如果下次有新的想法,小菜会继续重构的,加油。

 

以同步至:个人文章目录索引 

转载于:https://www.cnblogs.com/yangcaogui/p/3225863.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值