距離上一篇:“學習之路十九:模仿ASP.NET的緩存依賴自定義緩存機制” 已經有很長時間了,這段時間正好在做項目優化,是以對緩存這塊做了重構。
重構的内容包括:輪詢+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是否添加了緩存特性,如果有則緩存該資料
三丶總結
這次重構的特點:讓緩存資料變的更加靈活了。
如果下次有新的想法,小菜會繼續重構的,加油。
以同步至:個人文章目錄索引