熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java高級技術 >> 正文

Java程序性能優化-裝飾者模式(3)

2013-11-23 20:01:06  來源: Java高級技術 

    裝飾者模式(

  PacketHTTPHeaderCreator與PacketHTMLHeaderCreator類似但是它完成數據包HTTP頭部的處理其余業務處理依然交由內部的component完成

  public class PacketHTTPHeaderCreator extends PacketDecorator{

  public PacketHTTPHeaderCreator(IPacketCreator c) {

  super(c)

  }

  @Override

  public String handleContent() {         //對給定數據加上HTTP頭信息

  StringBuffer sb=new StringBuffer()

  sbappend(CacheControl:nocache\n

  sbappend(Date:MonDec::GMT\n

  sbappend(componenthandleContent())

  return sbtoString()

  }

  }

  對於裝飾者模式另一個值得關注的地方是它的使用方法在本例中通過層層構造和組裝這些裝飾者和被裝飾者到一個對象中使其有機地結合在一起工作

  public class Main {

  public static void main(String[] args) {

  IPacketCreator pc=new PacketHTTPHeaderCreator(

  new PacketHTMLHeaderCreator(

  new PacketBodyCreator()))

  Systemoutprintln(pchandleContent())

  }

  }

  可以看到通過裝飾者的構造函數將被裝飾對象傳入本例中共生成個對象實例作為核心組件的PacketBodyCreator最先被構造其次是PacketHTMLHeaderCreator最後才是PacketHTTPHeaderCreator

  這個順序表示首先由PacketBodyCreator對象去生成核心發布內容接著由PacketHTMLHeaderCreator對象對這個內容進行處理將其轉化為HTML最後由PacketHTTPHeaderCreator對PacketHTMLHeaderCreator的輸出安置HTTP頭部程序運行的輸出如下

  CacheControl:nocache

  Date:MonDec::GMT

  <html><body>Content of Packet</body></html>

  圖是本例的調用堆棧從調用堆棧中讀者應該可以更容易地理解各個組件間的相互關系

  圖  裝飾者模式示例調用堆棧

  在JDK的實現中有不少組件也是用裝飾者模式實現其中一個最典型的例子就是OutputStream和InputStream類族的實現以OutputStream為例OutputStream對象提供的方法比較簡單功能也比較弱但通過各種裝飾者的增強OutputStream對象可以被賦予強大的功能

  圖顯示了以OutputStream為核心的裝飾者模式的實現其中FileOutputStream為

  圖  裝飾者模式在OutputStream中的應用

       返回目錄Java程序性能優化讓你的Java程序更快更穩定

  編輯推薦

       Java程序設計培訓視頻教程

       JEE高級框架實戰培訓視頻教程

       JME移動開發實戰教學視頻

  Visual C++音頻/視頻技術開發與實戰

  Oracle索引技術

  ORACLEG數據庫開發優化指南


From:http://tw.wingwit.com/Article/program/Java/gj/201311/27822.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.