日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
經(jīng)驗總結(jié)如何選擇一個Flex框架

本文和大家重點討論一下如何選擇一個Flex框架,這里向大家介紹了四種Flex框架的優(yōu)點和缺點,相信通過本文的簡單描述你對Flex框架的選擇一定會自己的見解。

我們提供的服務有:網(wǎng)站建設、成都做網(wǎng)站、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認證、嵩明ssl等。為近1000家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務,是有科學管理、有技術(shù)的嵩明網(wǎng)站制作公司

如何選擇一個Flex框架

翻譯自:http://www.adobe.com/devnet/flex/articles/flex_framework_02.html

Cairngorm

Cairngorm是一個廣為人知的老牌Flex框架。它是一個微型架構(gòu)——由一些設計模式組成用來降低團隊協(xié)作的困難。
Cairngorm從Java的世界帶來了很多開發(fā)理念,并且把重點放在三個關(guān)鍵區(qū)域:處理用戶動作,封裝服務端的交互和業(yè)務邏輯,管理客戶端的狀態(tài)和界面呈現(xiàn)。
使用Cairngorm來構(gòu)建一個項目,需要將應用代碼分離到不同的包并且繼承Cairngorm的類。以下是Cairngorm項目中一些主要的部分和類。

ModelLocator是一個儲存數(shù)據(jù)的單例,數(shù)據(jù)表示程序的狀態(tài)。單例類的性質(zhì)保證了程序中的所有組件取得的是相同的數(shù)據(jù)。
ServiceLocator是另一個單例,它集中管理所有服務如HTTPServices。同樣,由于是單例,程序中的所有組件取得的是相同的服務。
業(yè)務邏輯被封裝在command類中。command實現(xiàn)了命令模式,它們表示相應用戶事件的邏輯。
事件被類FrontController處理,F(xiàn)rontController會把事件映射到相應的Command。
Delegate類作為代理來對遠端服務進行請求和響應。

優(yōu)點

Cairngorm在Flex社區(qū)廣為人知,作為Adobe開源項目的一員,擁有活躍的社區(qū)和開發(fā)者的支持。
其次,該框架吸取了Java開發(fā)中許多寶貴的經(jīng)驗,并成功得用于大型項目的開發(fā)中。
并且,Cairngorm適用于團隊開發(fā),因為它提供了結(jié)構(gòu)化的開發(fā)方法來創(chuàng)建應用,利于分布式的開發(fā)。

缺點

需要寫大量的類應該是Cairngorm最多的負面評論了。在Cairngorm中,每一個event對應一個command;因此,需要對程序觸發(fā)的每一個事件來寫一個command類。而且,還要為command寫一些其他的類,例如delegates。即使是一個中型的應用也會導致大量的類產(chǎn)生。

其次,Cairngorm實現(xiàn)了自己的一套事件處理的方法。這增加了Flex內(nèi)置事件模型的復雜度,而且它還有限制。由于每個事件都有自己的的command,事件的響應者被限制成1個。加之Cairngorm的事件不具冒泡特性,如果要發(fā)送數(shù)據(jù)到容器的其它層次則需要自己來實現(xiàn)。

第三個常見的批評是Cairngorm依賴全局的單例,這讓模塊和單元測試變得困難。盡管可以打破單例中的模型簡化測試,但是會增加額外的過程。#p#

資源
Cairngormdeveloperdocumentation
DevelopingFlexRIAswithCairngormmicroarchitecture–Part1:IntroducingCairngorm(StevenWebsterandLeonTanner,August2008)
ExampleCairngormproject

Mate

Mate是一個基于標簽的,事件驅(qū)動的框架?;跇撕炓馕吨梢酝耆珜崿F(xiàn)在MXML中。該框架的目的是讓事件響應者的聲明變得簡便。
在項目中使用Mate只需要處理兩個方面:使用1個或者多個事件,有一個成為”eventmap“的MXML文件——被包含在主程序中的一個MXML文件。它定義了需要監(jiān)聽的事件以及如何被處理。必須有1個eventmap,而且允許有多個。

Mate也實現(xiàn)了依賴注入(Dependencyinjection)的理念——有時被稱為好萊塢原則,或“don’tcallus,we’llcallyou”。對象的創(chuàng)建時這樣一種方式:數(shù)據(jù)被創(chuàng)建并且注入到對象中。也就是說,對象不會喊著要數(shù)據(jù)(”don’tcallus”),而是數(shù)據(jù)被傳送給對象(”we’llcallyou”)。

優(yōu)點

Mate使用依賴注入提升了松耦合性。因為組件不依賴全局的單例,能更自由地作為對立的部分。Mate不會阻止你使用Flex內(nèi)建的事件機制,也不會像Cairngorm一樣為每個事件都使用單獨的響應。Mate的MXML標簽文件簡單易用,而且文檔優(yōu)秀,在官網(wǎng)上有大量的代碼實例。

缺點

Mate使用MXML文件構(gòu)建,要是作為一個ActionScript開發(fā)者,就需要調(diào)整自己的習慣。而且Mate沒有為應用程序制定結(jié)構(gòu),這份工作留給了開發(fā)者。
因此,需要加強團隊協(xié)作來保證代碼的兼容性。還有一個問題與AdobeLiveCycleDataServicesES有關(guān),要知道Mate暫時還不能處理LiveCycleDataServices提供的數(shù)據(jù)管理方面的功能。#p#

資源
Matedocumentation
Exampleprojects
PodcastinterviewwithMateframeworkcreatorLauraArguello
 

PureMVC

盡管PureMVC用在Flex上,但是它并不是只為Flex設計的。PureMVC的創(chuàng)建者想讓它是一個語言無關(guān)的框架。如果你訪問它的網(wǎng)站,會發(fā)現(xiàn)大量的不同語言的實現(xiàn)版本。

PureMVC以MVC模式為中心,其目標是把項目分離成模型層,視圖層和控制層。這三個層表現(xiàn)為三個單例——Model,View和Controller,還有第四個單例Facade用來對前三個單例進行集中管理,是Facade模式的實現(xiàn)。

與Cairngorm很像,使用PureMVC創(chuàng)建一個項目需要把項目分成多個包,然后繼承框架中的類來構(gòu)造自己的類。***還要為項目額外創(chuàng)建一個Facade類來作為程序的入口。

優(yōu)點

與Cairngorm一樣,PureMVC是一個結(jié)構(gòu)良好的框架,有活躍的社區(qū)和開發(fā)者支持。它很適合團隊開發(fā),其清晰的結(jié)構(gòu)能告訴開發(fā)者如何創(chuàng)建和組織代碼。

缺點

因為它依賴于單例,所以有著和Cairngorm一樣的缺點。它不是一個特定的Flex框架,所以沒有充分利用到MXML的特性。

跟Cairngorm類似,PureMVC有自己的事件處理方式,但是跟標準的Flex事件模型一起工作會增加開發(fā)難度。

PureMVC是一個比較復雜的框架,有相當陡的學習曲線。除非你的團隊很熟悉它,否則培訓會占用很多時間。

還有,PureMVC也需要創(chuàng)建很多類,既增加了產(chǎn)品的開發(fā)時間,又增大了項目的尺寸。#p#

資源
Documentationandlicensing
Exampleproject
PodcastinterviewwithPureMVCframeworkcreatorCliffHall

Swiz

Swiz是一個控制反轉(zhuǎn)(IoC,InversionofControl)Flex框架,它提供一些機制來簡化事件處理和異步遠程調(diào)用。Swiz的真正意圖是以一種簡單高效的方式提供一個MVC范式。與Cairngorm和PureMVC不同,它借鑒了Java的一些模式,摒棄了預定義的文件結(jié)構(gòu)。

使用Swiz創(chuàng)建一個項目需要告訴Swiz所用到的組件。以這個為核心,Swiz是一個集中管理的工廠模式。組件被名為BeanLoader的靜態(tài)類加載到工廠當中,由工廠來處理組建的實例化。
Swiz還提供依賴管理,它使用了一個名為Autowire的自定義標簽,Autowire標簽定義依賴然后交給Swiz處理。

優(yōu)點

Swiz簡單易用,沒有預定義的文件結(jié)構(gòu)。類似于Mate,Swiz通過Autowire這個依賴注入系統(tǒng),提升了松耦合性。也類似于Mate,它使用Flex內(nèi)建的事件模型,并且使用單例來發(fā)送一個關(guān)鍵的事件。

缺點

跟Mate一樣,Swiz沒有為項目的結(jié)構(gòu)做過多的定義,這些留給了開發(fā)者,因此,需要加強團隊協(xié)作來保證代碼的兼容性。
其次,它使用了自定義標簽,項目的建立會額外多出一些步驟,例如設置額外的編譯選項。這些過程并不復雜,但是至少這些過程在其他框架中不需要。文檔強調(diào)的是Flex2的開發(fā)者,所以可能不適合比Flex2更新的版本。

資源

Documentationandexamples
PodcastinterviewwithSwizframeworkcreatorChrisScott

做出選擇

雖然描述的并不詳盡,但是這些信息加上資源足以讓人理解提到的每個框架的方法論,優(yōu)點,還有缺點??戳诉@些,你將如何作出取舍呢?
也許***個問題應該問:我是否需要一個框架?Flex和MXML為快速應用開發(fā)提供了健全的系統(tǒng)和方法。我一直以來不太使用框架的原因是,相對于使用Flex框架而言,使用額外的框架會讓我為了適應這些框架而去做更多的事情。我認為,框架的作用是簡化工作任務和提高生產(chǎn)率,而不是為了證明我能用或者用了就說明我是一個優(yōu)秀的開發(fā)者。

在一個電話面試中,我解釋了自己為什么選擇不使用框架,面試者回應:”我們是一個大的團隊,所以你明白為什么我們需要一些框架了”。一番思索之后,我確實明白了它的意思。
使用框架的一個好處就是它讓代碼的編寫標準化了。一個程序員A和一個程序員B使用同一個框架負責同一個項目的兩個不同部分,那么可以認為他們寫的程序是兼容的。也許這時候應該考慮另一個問題:有多少結(jié)構(gòu)允許被強加?

這里介紹的這些框架或多會少都包含了一些預定義的結(jié)構(gòu)。與獨自開發(fā)相比,團隊開發(fā)需要更多這樣的結(jié)構(gòu)。這些結(jié)構(gòu)可以增加項目的開發(fā)時間和文件尺寸,但是也會提升團隊的開發(fā)環(huán)境和代碼的一致性。相比這下,如果你是項目唯一的開發(fā)者,就不需要把事情搞那么復雜,或許你需要一個沒有這么多預定義結(jié)構(gòu)的框架。
所以,選擇一個正確的框架或者壓根不用框架是由開發(fā)環(huán)境和項目決定的。我能給出的***的建議是了解你的項目。通過我的調(diào)查和這篇文章,我認為自己對框架的看法會更深刻,它們確實可以滿足一些需求。

【編輯推薦】

  1. 開源Flex框架集錦
  2. Flex基礎 創(chuàng)建***個Flex項目
  3. 常見十大Flex調(diào)試工具和Flex框架 
  4. FlexBuilder3.0與Eclipse3.4的***結(jié)合
  5. 學習筆記 FlexBuilder2.0中如何使用基于Lists的控件 

網(wǎng)頁題目:經(jīng)驗總結(jié)如何選擇一個Flex框架
當前網(wǎng)址:http://www.5511xx.com/article/ccegsjp.html