資源描述:
《flex流行mvc框架之cairngorm小試牛刀.doc》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、前幾天學(xué)了下Flex的一MVC流行框架Cairngorm,并自己小試牛刀一把,暫作了一網(wǎng)站后臺(tái),通過(guò)項(xiàng)目讓我現(xiàn)在覺(jué)得Cairngorm并不是一個(gè)如此神奇的東西,只要我們大家都能按照它走一遍就會(huì)有所收獲,我們就會(huì)對(duì)MVC有個(gè)基本的了解,也會(huì)對(duì)Cairngorm有一個(gè)初步了解,希望大家通過(guò)我的這篇文章也能寫(xiě)出一個(gè)demo出來(lái),當(dāng)然是能在不看我這篇demo或者別人的demo的前提下寫(xiě)出來(lái)啦,呵呵,首先要說(shuō)的是,這個(gè)框架并不是一定要在lcds下才能運(yùn)行的,所以大家可以簡(jiǎn)單的建個(gè)Flex項(xiàng)目就OK了,下面就開(kāi)始我們的Demo。在最后會(huì)把整個(gè)
2、工程源碼提供出來(lái),歡迎下載。???我們新建工程,有一個(gè)Cairngrom的swc包一定要引進(jìn)去才行的哈,不然是不能成功的,所以大家可以Cairngrom的官方網(wǎng)站上去下載哈,我在這里提供地址,方便大家去下載http://labs.adobe.com/wiki/index.php/Cairngorm,還有更多的關(guān)于Cairngorm框架的資料可以訪問(wèn)http://www,cairngormdoc.org,歡迎和大家一起討論該框架,歡迎大家加我QQ:234281357,也希望能從大家那學(xué)到許多東西。???先把我剛寫(xiě)的一個(gè)小demo的部
3、署結(jié)構(gòu)給大家看看,下面我會(huì)一一講解每個(gè)包中應(yīng)方的類(lèi),每個(gè)包的命名都是很規(guī)范的,這樣大家就很清晰的理解你寫(xiě)的代碼的意思,所以建議大家不要輕易改變這么命名。我先說(shuō)說(shuō)這里的包,既然是MVC框架的話,當(dāng)然我們要把哪些是M,哪些是V以及哪些是C給分出來(lái)。M主要是模型,我們從命名也許也能猜到了,model和vo應(yīng)該都?xì)w屬于該層了,它主要是存放的是數(shù)據(jù)模型,vo中存的就是普通的數(shù)據(jù),一般的話都是最小單位的數(shù)據(jù),是不能進(jìn)行再次分解的數(shù)據(jù),代碼如下:Java代碼1.package?org.rjb.vo??2.{??1.????import?com.
4、adobe.cairngorm.vo.IValueObject;??2.????//一般情況下,我們需要實(shí)現(xiàn)框架中的IValueObject接口??3.????public?class?UserVO?implements?IValueObject{??4.????????//存放用戶名??5.????????public?var?userName:String;??6.????????//存放密碼??7.????????public?var?password:String;??8.????}??9.}??packageorg.rj
5、b.vo{importcom.adobe.cairngorm.vo.IValueObject;//一般情況下,我們需要實(shí)現(xiàn)框架中的IValueObject接口publicclassUserVOimplementsIValueObject{//存放用戶名publicvaruserName:String;//存放密碼publicvarpassword:String;}}而model中的數(shù)據(jù)一般是包括相應(yīng)的VO對(duì)象以及一些相關(guān)的應(yīng)用變量,比如說(shuō)系統(tǒng)狀態(tài)什么的,當(dāng)然要按自己的意思來(lái)了,并且我們一般把它做成單例類(lèi),前面我有篇文章就是講單例模
6、式的,并對(duì)比了java和actionscript3.0中不同的實(shí)現(xiàn)方式,如果還不是很了解的話大家可以去參考下。下面是改model類(lèi):Java代碼1.package?org.rjb.model??2.{??3.????import?com.adobe.cairngorm.model.ModelLocator;??4.??????5.????import?org.rjb.vo.UserVO;??6.????[Bindable]??7.????public?class?UserModelLocator?implements?ModelL
7、ocator??8.????{??9.????????//存放vo對(duì)象??10.????????public?var?userVO:UserVO;??11.????????//存放一些狀態(tài)變量??12.????????public?var?state:String="User---Login";??13.????????//單例對(duì)象??14.????????private?static?var?modelLocator:UserModelLocator;??15.??????????16.????????public?static
8、?function?getInstance():UserModelLocator{??17.????????????if(modelLocator==null){??18.????????????????modelLocator=new?UserM