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

          導(dǎo)航

          <2007年8月>
          2930311234
          567891011
          12131415161718
          19202122232425
          2627282930311
          2345678

          常用鏈接

          留言簿(20)

          我參與的團(tuán)隊

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          links

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          AOP之動態(tài)化

          Posted on 2007-01-14 17:04 canonical 閱讀(1099) 評論(2)  編輯  收藏 所屬分類: 設(shè)計理論
          ??? 目前的AOP(Aspect Oriented Programming)技術(shù)雖然以動態(tài)代碼織入為核心,但是這種織入仍然是一次性的。一般在系統(tǒng)構(gòu)造的時候(例如ClassLoader裝載Class的時候)實現(xiàn)類和成員函數(shù)的增強(qiáng)。此后在運行時刻代碼結(jié)構(gòu)是固定的而不再發(fā)生變化。但是在真正的業(yè)務(wù)處理過程中,我們在不同的應(yīng)用場景下可能要求織入不同的Aspect。例如基本的權(quán)限Aspect, 如果在不同的應(yīng)用場景有不同的權(quán)限設(shè)定,則我們顯然希望進(jìn)入一個確定的操作場景的時候就指定一整套的權(quán)限策略,而不是在每個函數(shù)調(diào)用時刻寫上一大堆的if/else(這種分離的條件判斷正是AOP試圖從結(jié)構(gòu)上消除的)。
          ??? 為了實現(xiàn)AOP的二級動態(tài)化,我們首先需要約定一些公共標(biāo)記(坐標(biāo)),便于在標(biāo)記處插入Aspect Container, 其次我們需要在系統(tǒng)中建立一個隱蔽的信道,可以通過該信道傳遞一個標(biāo)志符(Aspect的id),用于在各處選擇特定的Aspect. 建立這種動態(tài)特性之后,我們就可以據(jù)此發(fā)展出Aspect組的概念,并實現(xiàn)Aspect組之間的繼承關(guān)系等高階結(jié)構(gòu),從而最大限度的限制程序結(jié)構(gòu)的分散化。
          ??? Witrix平臺的BizFlow設(shè)計在概念上可以看作是AOP的一種二級動態(tài)化織入設(shè)計,它通過$bizId這一特定參數(shù)來選擇織入的Biz。一個BizFlow對象是一組Biz(Aspect)的集合, BizFlow可以通過extends機(jī)制實現(xiàn)集合之間的合并等(BizFlow實現(xiàn)的合并策略其實是非常復(fù)雜的)。一個簡單的應(yīng)用就是流程支持,例如一個普通的實體對象對應(yīng)的bizflow只需要加上如下代碼即可獲得流程相關(guān)的代碼,前臺菜單等。
          ? <bizflow extends="testflow.biz.xml">

          Feedback

          # re: AOP之動態(tài)化  回復(fù)  更多評論   

          2007-08-18 04:56 by ObjectTutor
          我覺得這個只是概念罷了
          沒有業(yè)務(wù)的規(guī)范和統(tǒng)一,哪有組件、AOP開發(fā)?
          但實際上商業(yè)業(yè)務(wù)本來就很復(fù)雜,做規(guī)范統(tǒng)一需要很長實踐
          技術(shù)只是輔助罷了

          # re: AOP之動態(tài)化  回復(fù)  更多評論   

          2007-08-18 20:15 by canonical
          在數(shù)學(xué)和具體工藝之間還存在著所謂的物理學(xué),這就是Witrix設(shè)計的方向。
          主站蜘蛛池模板: 区。| 中江县| 洛隆县| 安丘市| 漯河市| 新蔡县| 富平县| 乌兰县| 时尚| 天柱县| 天长市| 遵义市| 田林县| 东乡县| 昆明市| 景德镇市| 历史| 军事| 榆林市| 广东省| 泰兴市| 博兴县| 和顺县| 南宫市| 新绛县| 德保县| 汶上县| 靖边县| 赤城县| 永州市| 临桂县| 锡林浩特市| 登封市| 柘城县| 乌拉特前旗| 奇台县| 新安县| 禹州市| 柳江县| 衡南县| 监利县|