[教學]Mate Framework Part1

2009-06-03_130504.jpg

Mate是給Flex開發的Framework,跟Cairngorm一樣只能在Flex下運作,比較特別的是Mata以mxml標籤撰寫,特有的EventMap跟Injector可在不破壞原架構的情況下注入行為,屬於非侵入式的框架。

一、架構

2009-06-04_131314.jpg

官網並沒有特別解釋要分成那幾類,這是按照官網範例的分類法,給大家參考

business:放置資料管理的ModelManager

events:放置自定事件

maps:放置EventMap跟ModelMap,Mate的主要核心

views:放置要顯示的UI Component

vos:放置Value Object

最外層為程式的進入點(Main.mxml)

二、流程

官網有完整的流程圖,這裡只挑幾個筆者覺得常用到的來講

先看一下mate的雙向流程圖

two_ways.png

如上圖,View透過事件驅動EventMap,在Mate裡所有的事件Bubble要設為true,讓上層元件可聽到事件,EventMap就是用來集中管理事件的地方,透過EventMap可呼叫要存取的網路服務或Manager,且可使用ResponseAnnouncer回傳訊息給呼叫者,不必再特別調用事件,當然想調用事件也可以,使用Mate的EventAnnouncer,可通知給對事件給感興趣的View。

使用Mate Adapter

model_adapter.png

除了使用EventAnnouncer及ResponseAnnouncer回應訊息外,還可透過ModelManager自動更新給View,這裡就要用到Flex的強項:DataBinding,我們可在程式初始時挷定View跟ModelManager的Bindable資料(例如ArrayCollection),在透過EventMap改變ModelManager時,由於是DataBinding,我們可不用送事件給View,Binding會自動送PropertyChange事件,一些Flex元件(像DataGrid)會自己更新,簡化了原本MVC煩雜的訊息溝通,這也是使用Mate的好處。

第一部分先簡單介紹架構與流程,下一篇會使用範例來說明,如果大家對Mate的流程感興趣,可參考Kenshin's Flex BlogMate教學

Mate官網:http://mate.asfusion.com/

教學文件:http://mate.asfusion.com/page/documentation

API DOC:http://mate.asfusion.com/api_docs/

0 意見 :: [教學]Mate Framework Part1