前一段時間,曾經(jīng)做過一點flex的開發(fā)工作,最初使用的是cairngorm,后來研究了一下 pureMvc,并進(jìn)行了部分改造。
由于只是初步涉足flex領(lǐng)域,所以只能提出一點自己的看法,并不具有說服力。
cairngorm 前端的控件監(jiān)聽用戶的行為,只是監(jiān)聽,并不會做任何反應(yīng)。控件監(jiān)聽以后調(diào)用Commands來做相應(yīng)的事情,Command做了所有工作。把業(yè)務(wù)邏輯委托到 Bussiness Delegates中,Command調(diào)用Business Delegate 后,Business Delegate 通過Service Locator來找到相應(yīng)的RPC services,然后執(zhí)行實現(xiàn)從服務(wù)器端取數(shù)據(jù)。
在Model Locator 保存狀態(tài)并且能使Model檢測到View的變化。這樣一來用戶操作就能直接影響Model。
它的體系主要包含下面幾部分(具體用法就不做分析了):
使用cairngorm 對于整個事件的流程會比較的清晰。個人認(rèn)為它的整個流程很符合人類的思維方式。但是在實際開發(fā)中卻感覺 每當(dāng)添加一個事件的時候,就要去寫event command delegate,事件一多就會感覺重復(fù)寫這些東西很煩。這時候就開始考慮更換一下框架,于是在頭的指導(dǎo)下去看了pureMvc框架。
學(xué)了兩天后,就深深喜歡上pureMvc了,哈哈!
顧名思義。pureMvc 就是純的mvc框架,許多人都錯誤地把PureMVC誤認(rèn)為它是一個Flash的MVC框架或者是Flex的MVC框架。既然它是一個純框架,那么,它就不僅僅是支持某種特定 的語言,它的設(shè)計是與語言無關(guān)的。它支持了好多種常用的編程語言。
pureMvc的層次結(jié)構(gòu)比cairngorm清晰的多,嚴(yán)格的MVC三層結(jié)構(gòu)。
1、Model保存對Proxy對象的引用,Proxy負(fù)責(zé)操作數(shù)據(jù)模型,與遠(yuǎn)程服務(wù)通信存取數(shù)據(jù)。
由于只是初步涉足flex領(lǐng)域,所以只能提出一點自己的看法,并不具有說服力。
cairngorm 前端的控件監(jiān)聽用戶的行為,只是監(jiān)聽,并不會做任何反應(yīng)。控件監(jiān)聽以后調(diào)用Commands來做相應(yīng)的事情,Command做了所有工作。把業(yè)務(wù)邏輯委托到 Bussiness Delegates中,Command調(diào)用Business Delegate 后,Business Delegate 通過Service Locator來找到相應(yīng)的RPC services,然后執(zhí)行實現(xiàn)從服務(wù)器端取數(shù)據(jù)。
在Model Locator 保存狀態(tài)并且能使Model檢測到View的變化。這樣一來用戶操作就能直接影響Model。
它的體系主要包含下面幾部分(具體用法就不做分析了):
1. Business(業(yè)務(wù)邏輯部分)
2. Command(命令部分)
3. Control(控制部分)
4. Model(數(shù)據(jù)模型)
5. View(界面視圖)
6. VO(ValueObject)
使用cairngorm 對于整個事件的流程會比較的清晰。個人認(rèn)為它的整個流程很符合人類的思維方式。但是在實際開發(fā)中卻感覺 每當(dāng)添加一個事件的時候,就要去寫event command delegate,事件一多就會感覺重復(fù)寫這些東西很煩。這時候就開始考慮更換一下框架,于是在頭的指導(dǎo)下去看了pureMvc框架。
學(xué)了兩天后,就深深喜歡上pureMvc了,哈哈!
顧名思義。pureMvc 就是純的mvc框架,許多人都錯誤地把PureMVC誤認(rèn)為它是一個Flash的MVC框架或者是Flex的MVC框架。既然它是一個純框架,那么,它就不僅僅是支持某種特定 的語言,它的設(shè)計是與語言無關(guān)的。它支持了好多種常用的編程語言。
pureMvc的層次結(jié)構(gòu)比cairngorm清晰的多,嚴(yán)格的MVC三層結(jié)構(gòu)。
1、Model保存對Proxy對象的引用,Proxy負(fù)責(zé)操作數(shù)據(jù)模型,與遠(yuǎn)程服務(wù)通信存取數(shù)據(jù)。
2、View保存對Mediator對象的引用。由Mediator對象來操作具體的視圖組件(View Component,例如Flex的DataGrid組件),包括:添加事件監(jiān)聽器,發(fā)送或接收Notification ,直接改變視圖組件的狀態(tài)。
3、Controller保存所有Command的映射。Command可以獲取Proxy對象并與之交互,通過發(fā)送Notification來執(zhí)行其他的Command。
pureMvc采用了“觀察者模式”(被觀察者是不關(guān)心觀察者是誰的),通過消息機制,來維持command 與 mediator的關(guān)系,將它們之間的耦合度降到最低。notification機制也是我最喜歡pureMvc的一個方面。