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

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

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

    隨筆 - 11, 文章 - 1, 評論 - 20, 引用 - 0
    數據加載中……

    結合WebWork實現高復用度系統的探索(上)

    需求: 某機構體系下,機構類型分為子公司,部門,人員等,以后可能在某機構或者其子孫機構下可能會再分出其他子機構類型,希望在增加新類型過程中,盡可能的避免修改已有代碼。

    情況:子公司,部分,人員等已完成所有編碼(界面,商業邏輯,數據邏輯)
    變化:需要把這個機構體系組成為一顆樹狀結構
    策略:鑒于除了樹結構外的其他部分代碼已經完成,那么應該首先保持這些代碼不予改動。復用修改的優先級從高到低的順序如下:
    ? 界面×JSP,Action層
    ? 商業邏輯 Service層
    ? 數據邏輯層
    ? 數據物理層
    有經驗的人知道,大部分情況下,越是下層的改動,越是影響越廣泛(注意不是修改難度),所以我們只有在無計可施的情況下,才進行低層的修改。

    分析: 回到我們的需求,從功能上看,維護一個組織機構的需求,已經涵蓋了每一個子結構的維護需求,以部門的建立為例,在新建一個部門時,同時也必須建立機構樹上的節點,
    ?這樣,如果需要直接使用原有的創建部門的所有代碼,需要在其上加上創建組織機構所需要的父節點,以及當前節點名稱信息(在這里department的增加界 面JSP是需要修改的,不過實際上我沒有修改該文件,而是利用DHTML來動態加入需要新增加的信息),然后提交給原創建部門的URI (departmentSave.action)和組織機構創建URI(orgCreate.action),在這里我們利用ww提供的action chain功能來完成這兩個操作。
    ?這里需要修改department.action的配置,攔截save方法使其執行完后跳過原來的relist結果頁面轉向組織結構的創建orgCreate.action:
    ?<action name="unitSave" class="com.wolfsquare.ibase.org.action.UnitAction" method="save">
    ?? <result name="input">/org/unit/input.jsp</result>
    ?? <result name="relist" type="chain">
    ?????? <param name="actionName">orgCreate</param>
    ??????????????? <param name="namespace">/org</param>??
    ??????????? </result>
    ?? <result name="xxx" type="redirect">/org/unit.action?start=${start}</result>
    ?? <interceptor-ref name="validationStack"/>
    ? </action>
    可能有同學看到這里會問:創建組織節點時應該還需要關聯前面創建的部門對象啊,這個操作是如何實現的?信息是如何傳遞的?
    在這里,由于整個架構體系并沒有支持這種信息傳遞的功能,所以只好以一種比較”臟“的方式實現:
    ??????? 在department.action類里增加了一個方法getModel()返回剛剛創建的部門對象,然后在org.action類中增加一個接收的方法setModel(object o)這樣在整action chain執行的時候,ww會自動將getModel后的數據填入setModel中,這樣做的后果是以后增加新的機構類型的功能時,action必須也照這樣的語意設置getModel方法。(如果要解決這個問題,這能需要使用一個特定的Context,然后攔截指定Service的創建方法,把創建結果放入Context,不過這又帶來如何清除Context的問題,于是又要求助與ww的interspector,專門寫一個攔截器來擦屁股,夠麻煩。。。)

    ??????? 就這樣,我們完成了新增,修改組織機構的功能合成,雖然有點拖沓,但是還是達到了復用,少修改原有代碼,而且擴展性也很好的目標。這上篇說的是兩個簡單業務的功能揉合問題,下篇我們來看看稍微復雜點的情況,看看還能不能繼續依葫蘆畫瓢來完成功能合的成
    ??
    (未完待續)??

    posted on 2006-05-17 23:40 wolfsquare 閱讀(1231) 評論(0)  編輯  收藏 所屬分類: 企業應用

    主站蜘蛛池模板: 久久久久久久国产免费看| 国产免费观看视频| 国产乱妇高清无乱码免费| 亚洲av无码一区二区三区天堂古代| 国产亚洲精aa成人网站| 午夜时刻免费入口| 亚洲一区二区三区免费观看| 美女被免费网站91色| 精品国产日韩亚洲一区在线 | 一级一黄在线观看视频免费| 亚洲AV无码乱码麻豆精品国产| 久久亚洲国产精品| 亚洲综合国产精品第一页| 国产精品免费播放| 性感美女视频在线观看免费精品 | 国产亚洲精品自在线观看| 免费A级毛片无码久久版| 免费看少妇作爱视频| 2021国产精品成人免费视频| 日韩内射激情视频在线播放免费 | 亚洲国模精品一区| 免费A级毛片无码A∨男男 | 亚洲av成人一区二区三区在线播放 | 亚洲一区二区三区夜色| 亚洲乱码无码永久不卡在线| 亚洲成av人在片观看| 国产91久久久久久久免费| 日本高清免费不卡视频| 午夜dj在线观看免费视频| 成人免费无码精品国产电影| 日韩免费a级在线观看| 毛片免费视频在线观看| 啦啦啦高清视频在线观看免费 | 四虎影院永久免费观看| 国产禁女女网站免费看| 日韩一级视频免费观看| 日本免费高清一本视频| 日本一道综合久久aⅴ免费| 国产极品粉嫩泬免费观看| 国产大片91精品免费观看男同| 国产男女猛烈无遮挡免费视频网站|