freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于puremvc的一個flexmp3播放器分析-wenkub

2023-07-08 19:11:07 本頁面
 

【正文】 cade10ApplicationFacade86import在程序的createComplete事實觸發(fā)的時候,(this)這個方法,意思就是啟動整個框架。id=songListBoardview:SongListBoard/21/mx:Script19=151411/mx:Style10mx:StylecreationComplete=(this)4mx:Application?xml 另外要注意幾點,Command類是短生命周期的,也就是說,當(dāng)有消息通知需要用到該Command進行處理時,F(xiàn)acade就會創(chuàng)建這個Command類,并將數(shù)據(jù)傳入Command里面進行處理,當(dāng)處理完成后,其生命周期就會結(jié)束,所以不要將一些長生命周期的數(shù)據(jù)存放在Command里,比如不要將一些狀態(tài)數(shù)據(jù)信息存放在Command里面。當(dāng)你改變了UI時,只需要對Mediator進行相應(yīng)的改變就行了,而你改變了業(yè)務(wù)的邏輯與算法之類的話,也相應(yīng)的改變Command就可以了,對其它模塊的影響不大。再將組積好后數(shù)據(jù)交給Mediator來進行顯示,而Mediator,就是下面我們要說的。而類結(jié)構(gòu)上,對數(shù)據(jù)操作的代理Proxy類就只有一個,但可以從我們的應(yīng)用上又分為Local Proxy,Remote Proxy,其實都只是Proxy ,只是根據(jù)用戶的應(yīng)用的不同,在Proxy里面實現(xiàn)不同的功能而已,比如如果你操作本地數(shù)據(jù)(內(nèi)存中的數(shù)據(jù),并非本地操作系統(tǒng)的文件),你可以寫一些VO的getter/setter直接操作數(shù)據(jù),而如果是Remote的數(shù)據(jù)的話,你可以在Proxy類里定義一些HttpService,URLLoader,WebService等等的訪問遠程數(shù)據(jù)的API,之后將獲取到的遠程數(shù)據(jù)放在VO中。先來看看PureMVC的結(jié)構(gòu)圖:所以Flex的開發(fā)框架就應(yīng)運而生了。目前,好的Flex開發(fā)框架還不多,官方有個Cairngorm的框架,可能有些人會說這個框架有點復(fù)雜,其實不然,對比起Ruby的Rails,Java的Struts,Spring之類的開發(fā)框架,就顯得簡單得多了。 在圖中,F(xiàn)acade,Model,View,Controller都是PureMVC的四個核心類,都是單例模式的,用戶無需操作那Model,View,Controller類,而用戶只需要操作Facade就夠了,F(xiàn)acade類用來管理其它的三個單例類,顧名思義,那三個類都是分別對應(yīng) MVC 模式的那三個元素,F(xiàn)acade也是個單例,它負責(zé)創(chuàng)建,激活,調(diào)用其它的三個類,管理MVC各屋的生命周期。還有就是Proxy類只會發(fā)送“消息”(通知),而不會接收任何消息,而Mediator與Command則可以發(fā)送與接收,所以你不能直接發(fā)消息通知Proxy去加載數(shù)據(jù),而是通過引用Proxy的實例調(diào)用相關(guān)的函數(shù)。version=xmlns:mx=verticalGap=268mx:Script12private()。mx:Boxview:ControlBoard/23這里的代碼都比較簡單,我們再來看看ApplicationFacade的代碼:2579extends{11constants12STARTUP:String/**16ApplicationFacade*/18getInstance()ifnullnewreturn21*function)。29/**32Commandsfunctionvoid35STARTUP,}3940我們還看到了有一個initializeController( ) 的函數(shù),當(dāng)這個ApplicationFacade被實例化加載的時候,會先自動調(diào)用initializeController( ) 這個函數(shù),所以,我們應(yīng)當(dāng)在ApplicationFacade在被初始化的時候,就對Command進行注冊,說就是注冊,其實也只是將一個Command與一個消息綁定在一起而已。我們再看看startup()這個方法,在剛才的主程序里調(diào)用這個方法時,傳入了一個傳入了一個參數(shù)this,就是主程序本身,在startup()方法里面,發(fā)送了一個消息 sendNotification( STARTUP, app )。 sendNotification()這個是發(fā)送消息的方法,第一個參數(shù)是消息的類型,第二個是可選參數(shù),是消息的內(nèi)容(消息體),在這里,將主程序的引用作為消息體綁在消息里一起發(fā)送了。package3importpublicSimpleCommand{function:10*varas*/19(newControlBoardMediator())。new(new28PlayListProxy).loadPlayList()。}上面的就是一個Command的代碼,注意,一個Command必需要實現(xiàn)ICommand接口,而如果是一個單Command的話,就需要繼承SimpleCommand類,而如果是一個Command鏈的話,就需要實現(xiàn)MacroCommand,至于Command鏈,如果有J2EE基礎(chǔ)的話,也就是Filter的過濾器鏈差不多。這是由于Command的生產(chǎn)控制不是由用戶來操作的,是由Facade里面的一個工廠方法來對Command實例化并管理的,所以需要與一個消息名稱進行綁定,而代理與中介器就是用戶
點擊復(fù)制文檔內(nèi)容
規(guī)章制度相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1