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