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

          行為聚集

          Posted on 2009-07-11 21:37 canonical 閱讀(1244) 評論(0)  編輯  收藏 所屬分類: 設(shè)計理論
              軟件開發(fā)技術(shù)的技術(shù)本質(zhì)在于對代碼結(jié)構(gòu)的有效控制. 我們需要能夠有效的分解/重組代碼片斷, 凸顯設(shè)計意圖. 面向?qū)ο笫悄壳白畛R姷拇a組織技術(shù). 典型的, 它可以處理如下模式
            A1 --> B2,  A2 --> B2,  A3 --> B3 ...
          我們觀察到A1和A2之間, B2和B2之間具有某種概念關(guān)聯(lián)性, 同時存在某種抽象結(jié)構(gòu) [A] --> [B].
          對于這種情況, 我們可以定義對象 [A], [B], 它們分別是 A1和A2的聚合, B1和B2的聚合等. 舉例來說, 對于如下表格描述, <ui:Col>所提供的信息在映射為html實現(xiàn)的時候?qū)⒃诙嗵幈粦?yīng)用.
          <ui:Table data="${data}">
            <ui:Col name="fieldA" label="labelA" width="20" />
            <ui:Col name="fieldB" label="labelB" width="10" /> 
          </ui:Table>
          這里<ui:Col>提供的信息對應(yīng)三個部分的內(nèi)容: 1. 列標(biāo)題 2. 列樣式(寬度等)  3. 列數(shù)據(jù)

          面向?qū)ο蟮某R娮龇ㄊ浅橄蟪?UiCol對象, 它作為UiTable對象的屬性存在, 在生成表頭, 表列樣式和表格數(shù)據(jù)內(nèi)容時將被使用. 但是我們注意到面向?qū)ο笠蠖鄠€方法通過this指針形成狀態(tài)耦合

          ,在某種意義上它意味著所有的成員方法在任一時刻都是同時存在著的。它們所代表著的存在的代價必須被接受(存儲空間等)。即使并不同時被使用,我們?nèi)匀恍枰瑫r持有所有成員函數(shù)指針及

          共享的this指針。實際上, 我們并不一定需要A1和A2同時在場. 在這種情況下, 編譯期技術(shù)可以提供另一種不同的行為聚合方式.


          <table>
            <thead>
              <sys:CompileTagBody cp:part="thead" />
            </thead>
            <cols>
              <sys:CompileTagBody cp:part="cols" />
            </cols>
            <tbody>
              <sys:CompileTagBody cp:part="tbody" />
            </tbody>
          </table>

          只要<ui:Col>標(biāo)簽的實現(xiàn)中針對編譯期的cp:part變量進行分別處理, 即可實現(xiàn)信息的部分析取.


          主站蜘蛛池模板: 台中市| 洛川县| 泸州市| 通山县| 临城县| 静安区| 黄石市| 胶州市| 阜南县| 清徐县| 东至县| 库伦旗| 千阳县| 上高县| 正镶白旗| 清苑县| 廉江市| 巢湖市| 临泽县| 常德市| 湖州市| 合阳县| 乌兰察布市| 宜章县| 南投县| 长子县| 仪征市| 丰顺县| 榆中县| 娱乐| 项城市| 北海市| 临桂县| 嘉鱼县| 香格里拉县| 花莲县| 柯坪县| 麟游县| 平顶山市| 开化县| 扎囊县|