Posted on 2006-02-22 20:28
canonical 閱讀(903)
評(píng)論(0) 編輯 收藏 所屬分類:
設(shè)計(jì)理論
AOSD(Aspect-Oriented Software Development)可以看作是AOP技術(shù)思想在設(shè)計(jì)領(lǐng)域的一種投射. 采用Aspect的觀念之后, 我們?cè)谙到y(tǒng)分析時(shí)應(yīng)用如下的分解策略
base + extensionA + extensionB +... 而不僅僅是 partA + partB + ...
這種分解的基本理由在于base/extension的依賴關(guān)系與extension之間的依賴關(guān)系并不相同. 在理想情況下,
extension之間是完全正交的, 而它們通過(guò)base可以構(gòu)成一個(gè)整體, 這是一種典型的star schema.
但是在實(shí)際的軟件構(gòu)造過(guò)程中, 軟件各個(gè)元素之間的交互方式要復(fù)雜的多:
1. extension之間可能存在著相互作用, 最簡(jiǎn)單的一種情況是extension執(zhí)行時(shí)的序關(guān)系(order).
2. 一個(gè)結(jié)構(gòu)上的extension可能分散到多個(gè)component上, 如何精確而有效的控制定位是一個(gè)非常困難的問(wèn)題.
就目前的AOP技術(shù)而言,
對(duì)于extension的控制其實(shí)是非常乏力的(但這并不意味著AOP必然放棄對(duì)extension的控制), 我們尚需要積累更多的經(jīng)驗(yàn).
在實(shí)做中, 更加穩(wěn)健的方法往往是應(yīng)用aspect的思想而采用傳統(tǒng)的實(shí)現(xiàn)方式.
AOSD在理論上存在一些價(jià)值, 例如它為use case的extension符號(hào)找到了技術(shù)對(duì)應(yīng), 因而使得這個(gè)概念變得更加明晰, 而在傳統(tǒng)中,
對(duì)于use case的extension的解釋一直是模糊而混亂的. 目前在真正的開(kāi)發(fā)中, AOSD所描繪的全程建模仍然只是一個(gè)遙遠(yuǎn)的夢(mèng)想.