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

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

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

    posts - 176, comments - 240, trackbacks - 0, articles - 7

    [導入]Exportor: Visitor模式

    Posted on 2005-11-19 11:01 canonical 閱讀(345) 評論(0)  編輯  收藏 所屬分類: Witrix開發平臺

    數據導出的功能大致可以分解為三個部分: 1. 從數據源讀取一條記錄 2. 將一條記錄導出為指定格式 3. 循環調用1和2
    首 先我們需要一種機制來對外暴露數據源(一種Container)中的數據,Iterator模式恰能滿足要求。其次,我們需要一種機制來對一系列數據進行 處理,這對應于Visitor模式。第三,在組合Iterator模式和Visitor模式的處理過程中,我們需要表達出平面表數據集的基本特征。
    在witrix平臺中,平面表數據導出和轉換通過TablePageProcessor對象來完成,
    class TablePageProcessor{
     IPageViewer viewer;

     public Object process(ITableVisitor visitor){
      Pager pager = new Pager(viewer, pageSize);
      Iterator it = pager.itemIterator();
      visitor.visitBegin(headers);
      while(it.hasNext()){
       Object row = it.next();
       if(!visitor.visitRow(row))
        break;
      }
      return visitor.visitEnd();
     }
    }

    interface ITableVisitor{
     void visitBegin(List headers);
     boolean visitRow(Object row);
     Object visitEnd();
    }

    IPageViewer是暴露平面表數據的標準接口,它通過Pager對象的包裝之后可以提供各種Iterator.
    ITableVisitor體現了平面表數據的基本特征: header + 一系列row, 存在數據邊界(起始與終止)
    TablePageProcessor固化了IPageViewer和ITableVisitor的組合過程。
    ITableVisitor可以有多種實現,例如CSVBuilder, ExcelBuilder等等。
    主站蜘蛛池模板: 日日摸夜夜添夜夜免费视频| 99久久亚洲综合精品成人网| 午夜亚洲国产理论片二级港台二级 | 成人爱做日本视频免费| 亚洲中文无码永久免| 成年女人毛片免费播放人| 亚洲综合校园春色| 在线观看的免费网站| 亚洲最大中文字幕无码网站| 女人张开腿等男人桶免费视频| 亚洲午夜无码久久久久小说| 蜜桃精品免费久久久久影院| 在线观看亚洲网站| 亚洲精品岛国片在线观看| 日批视频网址免费观看| 精品亚洲国产成AV人片传媒| 久草在视频免费福利| 亚洲美国产亚洲AV| 亚洲精品A在线观看| 久久美女网站免费| 亚洲人成综合在线播放| 在线看片无码永久免费aⅴ| 日韩免费在线中文字幕| 久久精品国产亚洲AV果冻传媒| 99国产精品视频免费观看| 成人亚洲国产va天堂| 成人亚洲综合天堂| 午夜理伦剧场免费| 亚洲精品欧美综合四区| 国产亚洲AV夜间福利香蕉149 | 美女视频黄a视频全免费| 久久精品国产亚洲av瑜伽| 最新精品亚洲成a人在线观看| 99久久久国产精品免费蜜臀| 亚洲heyzo专区无码综合| 中文字幕久久亚洲一区| 青青青国产在线观看免费网站 | 美女免费视频一区二区| 亚洲a在线视频视频| 日韩一区二区在线免费观看 | 免费在线观看的网站|