Mate是給Flex開發的Framework,跟Cairngorm一樣只能在Flex下運作,比較特別的是Mata以mxml標籤撰寫,特有的EventMap跟Injector可在不破壞原架構的情況下注入行為,屬於非侵入式的框架。
一、架構
官網並沒有特別解釋要分成那幾類,這是按照官網範例的分類法,給大家參考
business:放置資料管理的ModelManager
events:放置自定事件
maps:放置EventMap跟ModelMap,Mate的主要核心
views:放置要顯示的UI Component
vos:放置Value Object
最外層為程式的進入點(Main.mxml)
二、流程
官網有完整的流程圖,這裡只挑幾個筆者覺得常用到的來講
先看一下mate的雙向流程圖
如上圖,View透過事件驅動EventMap,在Mate裡所有的事件Bubble要設為true,讓上層元件可聽到事件,EventMap就是用來集中管理事件的地方,透過EventMap可呼叫要存取的網路服務或Manager,且可使用ResponseAnnouncer回傳訊息給呼叫者,不必再特別調用事件,當然想調用事件也可以,使用Mate的EventAnnouncer,可通知給對事件給感興趣的View。
使用Mate Adapter
除了使用EventAnnouncer及ResponseAnnouncer回應訊息外,還可透過ModelManager自動更新給View,這裡就要用到Flex的強項:DataBinding,我們可在程式初始時挷定View跟ModelManager的Bindable資料(例如ArrayCollection),在透過EventMap改變ModelManager時,由於是DataBinding,我們可不用送事件給View,Binding會自動送PropertyChange事件,一些Flex元件(像DataGrid)會自己更新,簡化了原本MVC煩雜的訊息溝通,這也是使用Mate的好處。
第一部分先簡單介紹架構與流程,下一篇會使用範例來說明,如果大家對Mate的流程感興趣,可參考Kenshin's Flex Blog的Mate教學
Mate官網:http://mate.asfusion.com/
0 意見 :: [教學]Mate Framework Part1
張貼留言