<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-1  評論-68  文章-98  trackbacks-0
    作者:徐建祥(netpirate@gmail.com

    時間:2007-07-18
    來自:http://www.anymobile.org

    經常使用的數據一般都會緩存起來,提高效率。對于數據量比較大的,如圖片、資訊類,可以采用緩存Cache+索引的機制處理;而對于比較簡單的數據,可以通過簡單的數據容器進行緩存。當然,它們最終一般都存放在Hashtable HashMap等容器中。

           Cache 應用的原理大致是:初始化時將原數據導入Cache中或惰性加載;經常被查詢(點擊率高)的置前;當數據總大小超過Cache容量后,調整容量大小或清理不經常使用(點擊率低)的數據;數據超過有效期,及時清理;對于查詢失敗的數據,需CHECK一下。

            簡單的數據容器,將需要緩存的數據保存至單獨的容器,并在一定的條件下進行數據同步。同步的方法大致有2種:啟用一個時間線程,定期集中檢查、處理各個容器的周期同步操作;或者由各個容器單獨維護自身的周期和同步操作。

            前者統一處理,不會有額外的開銷,缺點是添加一個新的容器,都需要添加到同步線程中;后者單獨處理,實現起來比較快捷、沒有任何約束,而且互不影響,但使用的時候有額外的處理和對象開銷。

            當然,單獨處理并不代表就是所有的業務邏輯都在各容器中控制執行,可以使用代理機制來解決這個問題。

            靜態代理:代理對象與被代理的對象都必須實現同一個接口,在代理對象中可以實現CHECK等服務,并在需要的時候再調用被代理的對象,這樣代理對象就只保留業務相關職責。

           動態代理:JDK1.3以后開始支持動態代理,處理者的類實現java.lang.ref.InvocationHandler類,可以使用一個處理者(Handler)服務于各個對象。

           動態代理相對效率低些,集合靜態代理機制,數據容器大致流程如下:

           所有的數據容器都實現Container接口,定義生命周期、同步數據時的時間戳,同步方法和讀取數據的方法;定義一個靜態代理類,在查詢數據的時候,檢查數據容器是否過期,過期則調用容器的同步方法。

    類圖如下:

    序列圖如下:

    樣例代碼如下:

        Container container = new StaticProxy( EntityContainer.getInstance() );

        int[] arr = (int[]) container.getOne("025");

    了解AOP的,很容易就會想到pointcutadvisorMethodBeforeAdviced等等,原理類似,略。

     (全文完)

    posted on 2007-07-18 10:07 Xu Jianxiang 閱讀(528) 評論(0)  編輯  收藏 所屬分類: Design ResearchJava Tech
    主站蜘蛛池模板: 免费大黄网站在线观看| 在线播放免费人成毛片乱码| 久久久久成人精品免费播放动漫| 青草草在线视频永久免费| 亚洲色偷偷偷网站色偷一区| 毛片基地看看成人免费| 国产伦精品一区二区三区免费下载| 亚洲综合激情九月婷婷| 暖暖免费日本在线中文| 永久黄网站色视频免费| 4444亚洲国产成人精品| 亚洲va中文字幕| 国产va精品免费观看| 亚洲国产午夜电影在线入口| 国产精品成人观看视频免费| 亚洲六月丁香六月婷婷蜜芽| 成年男女男精品免费视频网站 | 内射少妇36P亚洲区| 久久久久免费看成人影片| 久久久无码精品亚洲日韩按摩 | 亚洲欧洲中文日韩av乱码| 三级黄色免费观看| 久久精品国产亚洲AV高清热| 999久久久免费精品国产| 亚洲精品无码一区二区| 亚洲精品国产高清不卡在线| 暖暖免费日本在线中文| 亚洲va久久久久| 久久亚洲国产成人影院网站| 久久香蕉国产线看免费| 狠狠色伊人亚洲综合网站色| 亚洲国产精品成人一区| 免费无码中文字幕A级毛片| 亚洲日韩AV一区二区三区中文| 国产午夜免费秋霞影院| 免费国产在线视频| 亚洲精品无码高潮喷水A片软| 久久激情亚洲精品无码?V| 国产精品视频免费| 免费一级做a爰片久久毛片潮| 亚洲人成电影福利在线播放 |