Flex框架Riawave的定制應(yīng)用
Jbpmside要使用Flex開發(fā)流程設(shè)計(jì)器以及管理器,剛好公司的一個(gè)內(nèi)部項(xiàng)目也應(yīng)用到Flex,大概花了一個(gè)禮拜來(lái)熟悉和了解Flex。其中發(fā)現(xiàn)Flex開發(fā)和AJAX開發(fā)的很多相通之處,這里把自己對(duì)Flex的一些學(xué)習(xí)心得總結(jié)一下。分為三部分,分別是對(duì)Riawave框架的介紹、參照Riawave,對(duì)自己先前采用的AJAX開發(fā)框架的介紹、以及對(duì)AJAX前景的一些自己看法。
Flex框架Riawave的定制應(yīng)用
Flex有很多開發(fā)框架,最有名的是Cairngorm。但是Cairngorm太復(fù)雜了,職責(zé)的細(xì)粒度分離帶來(lái)的是過(guò)多的類和代碼,不太適合中小項(xiàng)目。這里我們采用了Riawave,準(zhǔn)確的說(shuō)Riawave并不是一個(gè)框架,它只是一個(gè)通訊錄管理的簡(jiǎn)單代碼示例,它包含了很多的***實(shí)踐。這里想說(shuō)一點(diǎn),就是很多時(shí)候采用某種技術(shù)起決定因素的往往不是技術(shù)本身是否先進(jìn),而是看該技術(shù)的使用者是否眾多。
Riawave將應(yīng)用程序拆分成三部分,分別是Views、ModelLocator、DAO。
◆Riawave 中Views指的是應(yīng)用里的頁(yè)面組件,例如表格、表單、菜單等。它的職責(zé):
1、組成整個(gè)應(yīng)用的界面;
2、對(duì)組件內(nèi)部的原生事件進(jìn)行處理,這些事件指發(fā)生在該組件里的鼠標(biāo)事件和鍵盤事件;
3、當(dāng)需要其他組件進(jìn)行協(xié)作時(shí),發(fā)布定制事件;
4、對(duì)其所關(guān)聯(lián)的數(shù)據(jù)進(jìn)行操作;
5、監(jiān)聽其他組件發(fā)布的與之相關(guān)的定制事件,并做出展現(xiàn)形式上的改變。
◆Riawave 中ModelLocator是整個(gè)應(yīng)用的核心。它的職責(zé):
1、集中存儲(chǔ)應(yīng)用的所有數(shù)據(jù);
2、給頁(yè)面組件提供統(tǒng)一的定制事件監(jiān)聽器接口,即所有的頁(yè)面組件要對(duì)其他組件的定制事件監(jiān)聽則必須通過(guò)ModelLocator來(lái)進(jìn)行訂閱;
3、唯一的定制事件發(fā)布接口,即任何頁(yè)面組件要發(fā)布自己的定制事件都必須通過(guò)ModelLocator發(fā)布;
4、集中維護(hù)所有定制事件的類型。ModelLocator是單態(tài)的,通過(guò)ModelLocator,應(yīng)用程序所有的定制事件都被統(tǒng)一管理。
◆Riawave 中DAO負(fù)責(zé)操作應(yīng)用的數(shù)據(jù)。它的職責(zé):
1、改變應(yīng)用的數(shù)據(jù),提供應(yīng)用數(shù)據(jù)修改的統(tǒng)一接口,即用戶操作頁(yè)面組件改變數(shù)據(jù)時(shí),實(shí)際上是由頁(yè)面組件轉(zhuǎn)發(fā)給DAO處理;
2、遠(yuǎn)程訪問(wèn)服務(wù)端,F(xiàn)lex通常作為應(yīng)用程序的前端展現(xiàn)出現(xiàn),和AJAX一樣,數(shù)據(jù)的操作要和服務(wù)器端進(jìn)行交互;
3、服務(wù)器端返回正確的操作結(jié)果后,改變ModelLocator里的數(shù)據(jù),發(fā)布定制事件,觸發(fā)相應(yīng)頁(yè)面組件改變。
◆可以看到,整個(gè)Flex應(yīng)用完全是由事件驅(qū)動(dòng)的。其他需要了解的部分:
1、Flex的DataBinding機(jī)制,這個(gè)機(jī)制實(shí)際也是由事件發(fā)布/訂閱機(jī)制實(shí)現(xiàn)的,它可以省去自己編寫重復(fù)的定制事件發(fā)布/訂閱代碼,實(shí)現(xiàn)組件展現(xiàn)數(shù)據(jù)與ModelLocator的數(shù)據(jù)同步;
2、VO,本地的數(shù)據(jù)建模、用途:發(fā)布定制事件時(shí),通過(guò)VO攜帶組件數(shù)據(jù),VO被包含在事件里;傳遞數(shù)據(jù)到DAO。
【編輯推薦】
- 使用FlexSDK4時(shí)三大注意事項(xiàng)
- FlexBuilder4十大新特性閃亮登場(chǎng)
- Java程序員學(xué)習(xí)Flex和BlazeDS七大理由
- 揭開Flex正則表達(dá)式的神秘面紗
- 技術(shù)分享 在Flex中嵌入Flex字體的步驟