亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

虛擬代理模式(Virtual Proxy)(圖)

2019-11-18 12:15:52
字體:
來源:轉載
供稿:網友

  虛擬代理模式(Virtual PRoxy)是一種節省內存的技術,它建議創建那些占用大量內存或處理復雜的對象時,把創建這類對象推遲到使用它的時候。在特定的應用中,不同部分的功能由不同的對象組成,應用啟動的時候,不會立即使用所有的對象。在這種情況下,虛擬代理模式建議推遲對象的創建直到應用程序需要它為止。對象被應用第一次引用時創建并且同一個實例可以被重用。這種方法優缺點并存。
  
  優點:
  
  這種方法的優點是,在應用程序啟動時,由于不需要創建和裝載所有的對象,因此加速了應用程序的啟動。
  
  缺點:
  
  因為不能保證特定的應用程序對象被創建,在訪問這個對象的任何地方,都需要檢測確認它不是空(null)。也就是,這種檢測的時間消耗是最大的缺點。
  
  應用虛擬代理模式,需要設計一個與真實對象具有相同接口的單獨對象(指虛擬代理)。不同的客戶對象可以在創建和使用真實對象地方用相應的虛擬對象來代替。虛擬對象把真實對象的引用作為它的實例變量維護。代理對象不要自動創建真實對象,當客戶需要真實對象的服務時,調用虛擬代理對象上的方法,并且檢測真實對象是否被創建。
  
  假如真實對象已經創建,代理把調用轉發給真實對象
  
  假如真實對象沒有被創建:
  
  1)代理對象創建真實對象
  
  2)代理對象把這個對象分配給引用變量。
  
  3)代理把調用轉發給真實對象
  
  按照這種安排,驗證對象存在和轉發方法調用這些細節對于客戶是不可見的。客戶對象就像和真實對象一樣與代理對象進行交互。因此客戶從檢測真實對象是否為null中解脫出來,另外,由于創建代理對象在時間和處理復雜度上要少于創建真實對象。因此,在應用程序啟動的時候,用代理對象代替真實對象初始化。
  
  例子:
  
  假設我們建立一個java程序的集成開發環境(Integrated Development Environment),這個環境包括三個功能:編譯、運行、生成JavaDoc文檔。在新建和編輯Java程序時,最為常用的是編譯和運行。至于生成JavaDoc文檔對于每一個Java程序不是必需的。因此,在Java開發環境啟動時,不要創建和裝載實現集成開發環境全部功能的所有對象,僅創建那些在編輯、編譯、運行時用到的對象,保留提供生成JavaDoc文檔的對象,這是一個好的設計思想。這種對象創建策略能夠高效地利用內存空間并且加快了集成開發環境的啟動速度。
  
  假設編譯、運行、生成JavaDoc文檔這些功能分別由三個工具類提供??Compiler、Runtime和JavaDoc。客戶對象可以訪問的不同IDE操作的接口以抽象類IDEOperation的形式定義。
  
  public abstract class IDEOperation {
  private Compiler cmp;
  private Runtime rtime;
  public void compile(String javaFile) {
  cmp.compile(javaFile);
  }
  public void run(String classFile) {
  rtime.run (classFile);
  }
  //to be delayed until needed.
  public abstract void generateDocs(String javaFile);
  public IDEOperation() {
  cmp = new Compiler();
  rtime = new Runtime();
  }
  }
  
  類IDEOperation提供了編譯、運行java程序方法的實現,作為它構造函數的一部分,IDEOperation創建和裝載了進行編譯和執行操作的Compiler和Runtime對象。生成JavaDoc文檔的方法generateDocs方法被設計成抽象的方法,由它的子類來實現。
  
  讓我們定義抽象類IDEOperation的一個具體子類RealProcessor。作為RealProcessor構造函數的一部分,創建JavaDoc對象來提供生成JavaDoc文檔的服務,通過使用JavaDoc對象功能實現generateDocs方法。
  
  public class RealProcessor extends IDEOperation {
  JavaDoc jdoc;
  public RealProcessor() {
  super();
  jdoc = new JavaDoc();
  }
  public void generateDocs(String javaFile) {
  jdoc.generateDocs(javaFile);
  }
  }
  
  通過上面的實現,RealProcessor類包含了編譯、運行和生成JavaDoc文檔的所有功能。像我們原來討論的,生成JavaDoc文檔的功能不是每一個Java程序所必須的,當RealProcessor實例化的時候,包括負責生成JavaDoc文檔的JavaDoc對象的一系列對象被創建。推遲創建JavaDoc對象有以下優點:
  
  1)加速了RealProcessor對象的創建時間,因為它的構造函數創建的很少的對象。
  
  2)高效地利用內存,因為在不需要對象服務的時候,不需要把對象保持在內存中。
  
  在不改變RealProcessor實現的前提下,可以通過定義IDEOperation的另外一個子類ProxyProcessor來實現虛擬代理。因為RealProcessor和ProxyProcessor共享相同的接口,客戶對象可以用ProxyProcessor代替RealProcessor。圖25.1展示了類層次;
  
 虛擬代理模式(Virtual Proxy)(圖)
  Figure 25.1: IDEOperation Class Hierarchy

  
  public class ProxyProcessor extends IDEOperation {
  private RealProcessor realProcessor;
  public void generateDocs(String javaFile) {
  /*
  In order to generate javadocs
  the proxy loads the actual object and
  invokes its methods.
  */
  if (realProcessor == null) {
  realProcessor = new RealProcessor();
  }
  realProcessor.generateDocs(javaFile);
  }
  }
  
  作為自己的實例變量,ProxyProcessor維護了RealProcessor對象的一個引用。作為generateDocs方法的一部分,ProxyProcessor檢測引用變量是否被初始化為RealProcessor對象。假如沒有被初始化,它創建一個RealProcessor對象并把這個對象分配給它的實例變量。一旦RealProcessor對象已經被創建,就調用其上的generateDocs方法。
  
  實際上,也就是當客戶對象第一次請求產生javadoc文檔時,RealProcessor才被初始化裝入內存中。反過來,直到客戶需要為Java程序生成javadocs時,JavaDoc對象才會被創建和裝入內存中。
  
  客戶對象像調用真實處理對象一樣調用ProxyProcessor上的方法,并不需要關心(知道)RealProcessor對象是否存在。 至于驗證、檢測和ProxyProcessor和RealProcessor之間的交互、這樣的細節對于客戶對象是透明的。
  
  public class Client {
  public static void main(String[] args) {
  /*
  At this point objects required for
  the compile and run operations are
  created, but not the objects that provide the
  generate Javadoc functionality.
  */
  IDEOperation IDE = new ProxyProcessor();
  IDE.compile("test.java");
  IDE.run("test.class");
  /*
  The Javadoc functionality is accessed
  For the first time and hence the
  Object offering the Javadoc generation
  Functionality is loaded at this point.
  */
  IDE.generateDocs("test.java");
  }
  }

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
精品一区二区电影| 亚洲精品v天堂中文字幕| 欧美性极品xxxx做受| 亚洲成人网av| 色综合久久久888| 在线成人中文字幕| 欧美精品一区二区三区国产精品| 日韩黄在线观看| 亚洲国产成人久久综合一区| 成人福利视频网| 欧美国产在线电影| 国产精品色婷婷视频| 久久久久久999| 欧美另类暴力丝袜| 成人在线视频网站| 91精品国产91久久久久久最新| 国产精品2018| 日韩欧美中文字幕在线播放| 最新国产精品亚洲| 热久久免费国产视频| 不卡av在线网站| 精品激情国产视频| 最近2019好看的中文字幕免费| 2019中文字幕全在线观看| 最近中文字幕日韩精品| 国产日韩欧美一二三区| 久久久国产精品视频| 亚洲精品99999| 91久久久久久国产精品| 亚洲在线观看视频| 亚洲成人亚洲激情| 青青久久av北条麻妃海外网| 亚洲精品ady| 色综合天天狠天天透天天伊人| 国语自产精品视频在免费| 亚洲女成人图区| 亚洲欧美制服综合另类| 色综合久久中文字幕综合网小说| 欧美黄色小视频| 欧美日韩免费一区| 国产精品福利无圣光在线一区| 欧美xxxx综合视频| 亚洲综合成人婷婷小说| 中文字幕无线精品亚洲乱码一区| 久久久久久有精品国产| 中文字幕一区二区三区电影| 亚洲人成伊人成综合网久久久| 久久免费福利视频| 在线观看久久久久久| 欧美亚洲国产视频小说| 欧美日韩免费在线观看| 亚洲人成伊人成综合网久久久| 欧美精品免费在线观看| 91美女高潮出水| 亚洲另类激情图| 高清欧美一区二区三区| 日韩中文字幕在线看| 久久精品亚洲精品| 理论片在线不卡免费观看| 伊人亚洲福利一区二区三区| 欧美视频精品一区| 亚洲视频综合网| 自拍视频国产精品| 欧美黑人xxx| 日韩大片在线观看视频| 5252色成人免费视频| 国产第一区电影| 伊人激情综合网| 欧美极品在线播放| 久久国产精品免费视频| 国产91精品黑色丝袜高跟鞋| 国产精品91免费在线| 欧美理论电影在线播放| 激情av一区二区| 欧美在线播放视频| 午夜精品蜜臀一区二区三区免费| 成人高清视频观看www| 亚洲风情亚aⅴ在线发布| 亚洲第一视频网| 国产成+人+综合+亚洲欧美丁香花| 亚洲欧美日韩精品久久奇米色影视| 国产亚洲福利一区| 色妞色视频一区二区三区四区| 中文字幕在线成人| 欧美日韩综合视频网址| 国语自产精品视频在免费| 热re91久久精品国99热蜜臀| 日韩视频欧美视频| 久久精品久久精品亚洲人| 国产丝袜精品视频| 日韩欧美中文字幕在线播放| 日韩av网址在线| 深夜成人在线观看| 91成人免费观看网站| 亚州av一区二区| 亚洲免费av电影| 国产日韩欧美夫妻视频在线观看| 国产精品极品尤物在线观看| 国产精品久久久久久久久久久不卡| 国产精品视频一区国模私拍| 日韩精品丝袜在线| 尤物yw午夜国产精品视频明星| 欧美日韩美女视频| 91免费视频国产| 日韩亚洲欧美成人| 91久久精品久久国产性色也91| 4438全国亚洲精品在线观看视频| 高清欧美电影在线| 久久久久久综合网天天| 久久理论片午夜琪琪电影网| 欧美大片在线看| 91成人天堂久久成人| 国产精品视频一区二区高潮| 日韩精品极品在线观看| 精品人伦一区二区三区蜜桃免费| 成人av色在线观看| 欧美电影免费观看网站| 成人av.网址在线网站| 亚洲精品中文字| 亚洲欧洲日产国码av系列天堂| 国产亚洲欧美一区| 久久久久久国产三级电影| 欧美日韩亚洲系列| 成人伊人精品色xxxx视频| 亚洲成av人片在线观看香蕉| 中文字幕日韩有码| 亚洲在线www| 亚洲男人天堂九九视频| 国产91精品高潮白浆喷水| 亚洲国产精品成人va在线观看| 国产亚洲福利一区| 91九色精品视频| 欧美大片免费观看在线观看网站推荐| 久久久亚洲国产天美传媒修理工| 狠狠躁夜夜躁人人躁婷婷91| 欧美性一区二区三区| 欧美性极品少妇精品网站| 97视频免费观看| 俺也去精品视频在线观看| 欧美精品福利视频| 宅男66日本亚洲欧美视频| 黄色精品在线看| 亚洲视频在线观看视频| 在线色欧美三级视频| 久久精品美女视频网站| 国产精品扒开腿做爽爽爽的视频| 久久精品视频免费播放| 欧美在线一区二区三区四| 国产综合视频在线观看| 国产一区二区在线免费视频| 日韩av影片在线观看| 狠狠爱在线视频一区| 伊人精品在线观看| 国产精品久久中文| 91在线视频成人| 亚洲永久免费观看| 精品国偷自产在线| 中文字幕在线观看日韩| 最好看的2019的中文字幕视频| 日本精品久久电影| 国产97免费视| 欧美午夜美女看片| 亚洲午夜国产成人av电影男同| 亚洲天堂男人天堂女人天堂|