Flex框架Riawave的定制應(yīng)用
在學(xué)習(xí)Flex的過(guò)程中,你可能會(huì)遇到Flex框架應(yīng)用問(wèn)題,這里和大家分享一下,F(xiàn)lex有很多開(kāi)發(fā)框架,最有名的是Cairngorm,但是它不太適合中小項(xiàng)目。這里我們采用了Riawave,準(zhǔn)確的說(shuō)Riawave并不是一個(gè)框架,它只是一個(gè)通訊錄管理的簡(jiǎn)單代碼示例,它包含了很多的最佳實(shí)踐。
Flex框架應(yīng)用
Jbpmside要使用Flex開(kāi)發(fā)流程設(shè)計(jì)器以及管理器,剛好公司的一個(gè)內(nèi)部項(xiàng)目也應(yīng)用到Flex,大概花了一個(gè)禮拜來(lái)熟悉和了解Flex。其中發(fā)現(xiàn)Flex開(kāi)發(fā)和AJAX開(kāi)發(fā)的很多相通之處,這里把自己對(duì)Flex的一些學(xué)習(xí)心得總結(jié)一下。分為三部分,分別是對(duì)Riawave框架的介紹、參照Riawave,對(duì)自己先前采用的AJAX開(kāi)發(fā)框架的介紹、以及對(duì)AJAX前景的一些自己看法。
Flex框架Riawave的定制應(yīng)用
Flex有很多開(kāi)發(fā)框架,最有名的是Cairngorm。但是Cairngorm太復(fù)雜了,職責(zé)的細(xì)粒度分離帶來(lái)的是過(guò)多的類(lèi)和代碼,不太適合中小項(xiàng)目。這里我們采用了Riawave,準(zhǔn)確的說(shuō)Riawave并不是一個(gè)框架,它只是一個(gè)通訊錄管理的簡(jiǎn)單代碼示例,它包含了很多的最佳實(shí)踐。這里想說(shuō)一點(diǎn),就是很多時(shí)候采用某種技術(shù)起決定因素的往往不是技術(shù)本身是否先進(jìn),而是看該技術(shù)的使用者是否眾多。
Flex框架Riawave將應(yīng)用程序拆分成三部分,分別是Views、ModelLocator、DAO。
◆Views指的是應(yīng)用里的頁(yè)面組件,例如表格、表單、菜單等。
它的職責(zé):
1、組成整個(gè)應(yīng)用的界面;
2、對(duì)組件內(nèi)部的原生事件進(jìn)行處理,這些事件指發(fā)生在該組件里的鼠標(biāo)事件和鍵盤(pán)事件;
3、當(dāng)需要其他組件進(jìn)行協(xié)作時(shí),發(fā)布定制事件;
4、對(duì)其所關(guān)聯(lián)的數(shù)據(jù)進(jìn)行操作;
5、監(jiān)聽(tīng)其他組件發(fā)布的與之相關(guān)的定制事件,并做出展現(xiàn)形式上的改變。
◆ModelLocator是整個(gè)應(yīng)用的核心。
它的職責(zé):
1、集中存儲(chǔ)應(yīng)用的所有數(shù)據(jù);
2、給頁(yè)面組件提供統(tǒng)一的定制事件監(jiān)聽(tīng)器接口,即所有的頁(yè)面組件要對(duì)其他組件的定制事件監(jiān)聽(tīng)則必須通過(guò)ModelLocator來(lái)進(jìn)行訂閱;
3、唯一的定制事件發(fā)布接口,即任何頁(yè)面組件要發(fā)布自己的定制事件都必須通過(guò)ModelLocator發(fā)布;
4、集中維護(hù)所有定制事件的類(lèi)型。ModelLocator是單態(tài)的,通過(guò)ModelLocator,應(yīng)用程序所有的定制事件都被統(tǒng)一管理。
◆DAO負(fù)責(zé)操作應(yīng)用的數(shù)據(jù)。
它的職責(zé):
1、改變應(yīng)用的數(shù)據(jù),提供應(yīng)用數(shù)據(jù)修改的統(tǒng)一接口,即用戶(hù)操作頁(yè)面組件改變數(shù)據(jù)時(shí),實(shí)際上是由頁(yè)面組件轉(zhuǎn)發(fā)給DAO處理;
2、遠(yuǎn)程訪(fǎng)問(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)的。
◆Flex框架其他需要了解的部分:
1、Flex的DataBinding機(jī)制,這個(gè)機(jī)制實(shí)際也是由事件發(fā)布/訂閱機(jī)制實(shí)現(xiàn)的,它可以省去自己編寫(xiě)重復(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。
【編輯推薦】
- 常見(jiàn)十大Flex調(diào)試工具和Flex框架
- Flex基礎(chǔ) 創(chuàng)建第一個(gè)Flex項(xiàng)目
- 解析Flex事件執(zhí)行流程
- FlexBuilder3.0與Eclipse3.4的完美結(jié)合
- 學(xué)習(xí)筆記 FlexBuilder2.0中如何使用基于Lists的控件