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

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

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

    Asktalk

    天行健,君子以自強不息!
    posts - 21, comments - 79, trackbacks - 0, articles - 2
      BlogJava :: 首頁 ::  :: 聯系 :: 聚合  :: 管理
     

    這是一個目前最好的一個開源分頁標簽的實現---extremeTable標簽。今天談談它的Limit的設計架構思想。

    這個設計很通用,經過作者的多次重構,現在extremeTable的架構非常漂亮。這個標簽現在缺點是有些參數對mvc控制器屏蔽了,應提供一致的對外接口。不過整體上設計還是很精致的,面向對象來處理 html元素,與spring非常的默契,非常便于開發和測試。

    類圖關系

    1, 工廠LimitFactory

    TableLimitFactoryAbstractLimitFactoryLimitFactory

    TableLimitFactory是最終實現的工廠,它extendsAbstractLimitFactory抽象類,AbstractLimitFactory implementsLimitFactory接口。

    TableLimitFactory主要是用來實例化,通過構造函數傳入參數。同時創建Registry來完成jsp頁面參數傳入Registry。當然還有一個功能就是從web.xml的配置文件讀取一些全局參數。首先讀取配置文件參數,然后根據參數創建LimitRegistry對象。

    this.registry = new LimitRegistry(context, tableId, prefixWithTableId, state, stateAttr);

    AbstractLimitFactory主要是用來獲取jsp頁面上設置的參數,比如分頁的信息(第幾頁,起始行,結束行,每頁顯示行數,查詢條件,排序條件等),當然他是通過工具類Registry來實現。

    2, Limit

    TableLimitLimit。其主要作用是一個參數參數器,就是把Registry對象的參數傳入TableLimit,考慮到分層吧,TableLimit是該標簽和action通信的橋梁。就像我們的j2ee項目vodaostrutsview等數據傳輸工具。

    3, Preferences

    TablePropertiesProperties 主要是來實現從web.xml配置的文件中讀取配置的一些全局參數。

    InputStream input = this.getClass().getResourceAsStream(preferencesLocation);

    if (input != null) {

    properties.load(input);

    }

    其中preferencesLocation是路徑,在TableLimitFactory初始化時候,通過工具類TableModelUtils.getPreferencesLocation(context)獲取。

    這個設計也是大多數需要配置文件的系統常用的方法。

    4, Registry

    LimitRegistryAbstractRegistryRegistry

    這個體系結構和上面的工廠模式一樣,就是LimitRegistry主要是用來實例化,通過構造函數傳入參數。AbstractRegistry是實際實現類,獲取jsp表單提交的參數,并提供getter方法供Limit來使用。Registry是一個接口。

    所以這設計模式,我們可以來學習,

    經典表述:抽象類接口

    類:初始化,定義構造函數,傳入參數。

    抽象類:定義業務方法在此。

    接口:定義接口方法,這個不用多說。

    (作者:asktalk   來自 http://m.tkk7.com/askltak 原創文章,轉載請注明出處)


    評論

    # re: 高性能分頁標簽extremeTable的Limit設計架構思想剖析  回復  更多評論   

    2007-12-26 21:22 by yeshucheng
    想問問哥們,你是用什么工具畫的類圖。呵呵

    # re: 高性能分頁標簽extremeTable的Limit設計架構思想剖析  回復  更多評論   

    2007-12-27 00:40 by xmlspy
    @yeshucheng
    這個好像是myeclipse中uml功能

    其他eclipseuml插件也可以

    # re: 高性能分頁標簽extremeTable的Limit設計架構思想剖析  回復  更多評論   

    2007-12-27 01:46 by Asktalk
    是,MyEclipse的效果

    # re: 高性能分頁標簽extremeTable的Limit設計架構思想剖析  回復  更多評論   

    2007-12-27 11:55 by sunhy
    樓主,給個limit分頁的小例子吧,俺比較菜,呵呵,謝謝了

    # re: 高性能分頁標簽extremeTable的Limit設計架構思想剖析  回復  更多評論   

    2008-05-02 02:32 by Cccie
    應該是用 rose 畫的

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 成年网在线观看免费观看网址| 亚洲va久久久噜噜噜久久 | 亚洲人成色7777在线观看不卡 | 国产真人无遮挡作爱免费视频 | 免费福利资源站在线视频| 大学生一级特黄的免费大片视频| 久久亚洲AV成人无码| 日韩插啊免费视频在线观看| 亚洲成a人片在线观看无码专区| 丝袜捆绑调教视频免费区| 国产AV无码专区亚洲AV漫画| 高清永久免费观看| 国产精品久久久亚洲| 日韩免费无码一区二区三区| 亚洲视频手机在线| 国产1024精品视频专区免费 | 亚洲精品自偷自拍无码| 免费高清在线爱做视频| 羞羞漫画登录页面免费| 怡红院亚洲怡红院首页| 伊人久久免费视频| 亚洲人成人网毛片在线播放| 免费永久在线观看黄网站| 国产黄在线观看免费观看不卡| 亚洲AV无码一区二区乱孑伦AS| 一级毛片在线观看免费| 亚洲综合中文字幕无线码| 国产免费人成视频在线观看| 一个人看的免费高清视频日本| 亚洲αv在线精品糸列| 67194熟妇在线永久免费观看| 小说专区亚洲春色校园| 夜夜春亚洲嫩草影院| 亚洲日本在线免费观看| mm1313亚洲国产精品无码试看| 在线亚洲午夜理论AV大片| 国产电影午夜成年免费视频| 亚洲AV永久无码天堂影院| 亚洲熟妇av一区二区三区| 久久综合AV免费观看| 9久热精品免费观看视频|