<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成人无码国产电影 | 久香草视频在线观看免费| mm1313亚洲国产精品美女| 国产精品免费在线播放| 国产亚洲精品a在线无码| 久久99热精品免费观看动漫| 亚洲精品在线不卡| 大香人蕉免费视频75| 一级做a毛片免费视频 | 精品日韩亚洲AV无码| 福利免费观看午夜体检区| 亚洲国产精品99久久久久久 | 免费观看四虎精品国产永久| 日韩毛片在线免费观看| 久久精品国产亚洲一区二区三区| 中文字幕在线视频免费| 亚洲色图综合网站| 在线观看免费亚洲| a毛片免费全部在线播放**| 亚洲色大成网站www永久| 又大又黄又粗又爽的免费视频 | 99re热免费精品视频观看| 精品在线视频免费| 久久精品国产96精品亚洲 | 一个人看的www免费视频在线观看| 亚洲色av性色在线观无码| 国产人成免费视频| 亚洲视频在线观看免费| 国产亚洲综合久久| 亚洲视频国产视频| 中文字幕一精品亚洲无线一区|