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

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



一丶XML管理SQL

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

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

示例:

  1 <?xml version="1.0" encoding="utf-8" ?>
  2 <!--
  3     1. <      ==    < 
  4     2. >     ==    >
  5     3. &   ==   &
  6     4. '  ==    '
  7     5. "  ==    "
  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是否添加了缓存特性,如果有则缓存该数据



三丶总结

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

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

以同步至:




个人文章目录索引




稿源:博客园_TimYang (源链) | 关于 | 阅读提示

本站遵循[CC BY-NC-SA 4.0]。如您有版权、意见投诉等问题,请通过eMail联系我们处理。
酷辣虫 » 综合技术 » 学习之路三十四:再一次重构缓存设计 – TimYang

喜欢 (0)or分享给?

专业 x 专注 x 聚合 x 分享 CC BY-NC-SA 4.0

使用声明 | 英豪名录