軟件開發(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)信息的部分析取.
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)信息的部分析取.