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

          信道構建

          Posted on 2009-03-22 21:10 canonical 閱讀(631) 評論(0)  編輯  收藏 所屬分類: 設計理論
              分層是最常見的軟件架構方式之一。分層之后可以區(qū)分出橫縱兩個維度,縱向往往表現出一種隔離性。出于有意無意的各種原因,層次之間傳遞信息很容易出現模糊甚至丟失的現象。B/S多層體系架構下的程序因為瀏覽器和服務器之間的狀態(tài)空間相互獨立,相對于共享全局狀態(tài)空間的C/S程序,更容易出現信息傳遞不暢的問題。實際上,我們經常可以觀察到B/S程序中存在著大量的"接力"代碼,即在交界處,總是存在著大量用于讀取變量,拼接變量,轉換變量等與主體業(yè)務無關但卻又不可或缺的代碼。在多層架構程序中,信道構建應該是一個需要給予足夠重視的問題。

              在系統(tǒng)規(guī)劃中,多層結構應該內置與具體語義無關的通用信道,它跨越多個層次,允許信息透明的通過,并以未預期的方式在不同的層面激發(fā)各種相關的行為。在Witrix平臺中,平臺代碼與特定應用中的業(yè)務代碼處于高度交織的狀態(tài),一個特定業(yè)務功能的實現往往需要多處業(yè)務代碼相互協同,平臺必須成為某種透明的背景。例如,假設我們編制了一個通用的列表選擇控件,它封裝的邏輯是從一個實體列表中進行選擇
                <app:SelectOne objectName="MyEntity" />
          如果現在要求選擇時只列出某個類型的實體,則調用形式為
                <app:SelectOne objectName="MyEntity" extArgs="$bizId=select&amp;$type=1" />
          在調用入口處補充必要的信息之后會推動系統(tǒng)在遙遠的狀態(tài)空間中應用一個特定的過濾條件。這里$bizId負責指示平臺應用特定的元數據配置,而其他的參數則由元數據中的邏輯負責處理。平臺與特定業(yè)務代碼各取所需,相互配合,將盡可能多的邏輯剝離為通用機制。


          主站蜘蛛池模板: 万荣县| 永兴县| 广宗县| 西充县| 漳州市| 易门县| 宽城| 吉木萨尔县| 无为县| 平果县| 尤溪县| 宁化县| 仪征市| 略阳县| 遂平县| 清河县| 漯河市| 阿合奇县| 峡江县| 伽师县| 招远市| 蓝田县| 安达市| 崇仁县| 赤峰市| 石台县| 云浮市| 惠水县| 台东县| 高清| 天津市| 石景山区| 临汾市| 象山县| 柳林县| 泽库县| 江油市| 余干县| 平罗县| 高要市| 靖宇县|