keep moving!

          We must not cease from exploration. And the end of all our exploring will be to arrive where we began and to know the place for the first time.
          隨筆 - 37, 文章 - 2, 評(píng)論 - 3, 引用 - 0

          導(dǎo)航

          <2008年9月>
          31123456
          78910111213
          14151617181920
          21222324252627
          2829301234
          567891011

          常用鏈接

          留言簿(1)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          blog收藏

          文件共享

          搜索

          •  

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          Design Pattern: Future 模式

          Future模式可以簡單的看成是 Proxy 模式Thread-Per-Message 模式 的結(jié)合,在Proxy模式中,用一個(gè)Proxy來代替真正的目標(biāo)(Subject)生成,目標(biāo)的生成可能是費(fèi)時(shí)的,例如在開啟一個(gè)內(nèi)嵌圖片的文件中,希望程式能儘快完成開啟文件的動(dòng)作,並顯示一個(gè)可接受的畫面給使用者看,在還不需要看到圖片的頁面中先使用Proxy代替真正的圖片載入,只有在真正需要看到圖片時(shí),才由Proxy物件載入真正的圖片。

          考慮這樣一個(gè)情況,使用者可能快速翻頁瀏覽文件中,而圖片檔案很大,如此在瀏覽到有圖片的頁數(shù)時(shí),就會(huì)導(dǎo)致圖片的載入,因而造成使用者瀏覽文件時(shí)會(huì)有停頓的現(xiàn)象,所以我們希望在文件開啟之後,仍有一個(gè)背景作業(yè)持續(xù)載入圖片,如此使用者在快速瀏覽頁面時(shí),所造成的停頓可以獲得改善。

          Future模式在請(qǐng)求發(fā)生時(shí),會(huì)先產(chǎn)生一個(gè)Future物件給發(fā)出請(qǐng)求的客戶,它的作用就像是Proxy物件,而同時(shí)間,真正的目標(biāo)物件之生成,由一個(gè)新的執(zhí)行緒持續(xù)進(jìn)行(即Thread-Per-Message),真正的目標(biāo)物件生成之後,將之設(shè)定至Future之中,而當(dāng)客戶端真正需要目標(biāo)物件時(shí),目標(biāo)物件也已經(jīng)準(zhǔn)備好,可以讓客戶提取使用。

          Future

          一個(gè)簡單的Java程式片段示範(fàn)可能像是這樣:
          ....
           public Future request() {
              final Future future = new Future();

              new Thread() {
                  public void run() {
                      // 下面這個(gè)動(dòng)作可能是耗時(shí)的
                      RealSubject subject = new RealSubject();
                      future.setRealSubject(subject);
                  }
              }.start();

              return future;
           }



          文章來源:http://www.aygfsteel.com/jesson2005/articles/111199.html

          posted on 2008-09-07 11:06 大石頭 閱讀(165) 評(píng)論(0)  編輯  收藏 所屬分類: 多線程

          主站蜘蛛池模板: 宜都市| 信宜市| 甘孜县| 房产| 伽师县| 惠来县| 永德县| 兴和县| 垣曲县| 灵石县| 常山县| 淮安市| 梨树县| 双辽市| 黄浦区| 龙南县| 阜新市| 迭部县| 荔浦县| 临江市| 东乡族自治县| 启东市| 大厂| 利川市| 伊春市| 高台县| 宁乡县| 历史| 余干县| 筠连县| 治多县| 宁河县| 新宁县| 梁平县| 达孜县| 鲜城| 岳普湖县| 尚志市| 和顺县| 余姚市| 陈巴尔虎旗|