一.framework基本流程 1.產生主要mxml,設定檔名為APP NAME 1.在script內利用 facade.getInstance()取得唯一的facade 2.在createComplete時執行facade.startup(this) 2.產生一個ApplicationFacade當主要入口 1.設定所有在程式內要用來傳遞notication的Command名稱 2.在initializeController內利用registerCommand 註冊主要的command,把設定的notication名稱跟對應的 Command class都寫在這裡 3.在startup內sendNotification(STARTUP),用來執行 StartupCommand 3.StartupCommand 1.若是extends MacroCommand 則override initializeMacroCommand() 在裡面 addSubCommand(ModelPrepCommand); addSubCommand(ViewPrepCommand); 2.若是extends SimpleCommand 則是override execute() 注意,當使用sendNotification(CommandClass, app); 將參數送到command內,若是simpleCommand,可以使用 execut(note)內note.getBody()取讀傳入參數 若是使用MacroCommand,其initializeMacroCommand() 並沒有直接接收到note參數,而是initializeMacroCommand() 內的addSubCommand()所加的Command的execute會取得note物件 4.ModelPrepCommand override execute() 在裡面registerProxy 註冊所有的proxy,讓這些proxy 都可以與整個notification共通 5.ViewPrepCommand override execute 在裡面registerMediator註冊所有的Mediator, 或是只註冊一個APPlicationMediator 再到Application內註冊其他mediator 6.ApplicationMediator 在建構子內registerMediator註冊其他的mediator 當mxml利用startup(this)把自己傳進來時, 再把this傳給ApplicationMediator時 要讓ApplicationMediator使用這個mxml UIComponent 在傳入this時,this會被判定成mxml檔名的class 所以一定要import 這個mxml所在路徑 二.各項物件的限制與必要設定 1.mxml 定義各項視覺物件,並可對物件觸發事件設定dispatchEvent 若使用自訂component請在namespace內定義 2.facade 以public static的方式定義要當作Notication 傳送的Command名稱 3.mediator 1.mediator利用addEventListener與mxml上的物件做直接 的訊息通知 2.mediator可以接收並發送notification 接收來自於command或是proxy的notification 傳送notification給command 3.command 1.必要override execute或是initializeMacroCommand 要做的事放裡面 2.command內可以傳送與接收notification 傳送給mediator 接收來自mediator或proxy的notification 3.command內可直接操作proxy 透過facade.retrieveProxy(ProxyClass.NAME)取得 proxy實體,再由這實體直接去操作proxy 4.proxy 1.proxy只發送不接收notification 三.mxml上觸發指令,如何跑完整個流程 例如:要在使用介面上按一個send按鈕上,把登入資料送到server 驗證取得回傳結果,顯示 1.在mxml使用介面 在button上 設定click event去dispatchEvent, 在對應的mediator上設定addEventListener準備接收 2.當mediator接收event時,透過viewComponent取得使用者 輸入的帳號密碼資料,儲存成vo物件 利用sendNotification把 notification送出去 3.command在接收到notification時,將取得的vo物件當作參數 執行proxy的function 4.proxy與server傳輸驗證取得結果後 利用sendNotification發出結果 5.mediator接收到notification時改變外觀顯示 四.mediator如何接收指令並改變view外觀 1.mxml與mediator 由mxml dispatchEvent,在mediator內addEventListener, 互通訊息 2.傳送 mediator與command mediator sendNotification,command handle notication 3.傳送 mediator與proxy 不建議直接溝通 4.接收 mediator與command command sendNotification,mediator handle notication 5.接收 mediator與proxy proxy sendNotification,mediator handle notication
2010年1月21日 星期四
PureMVC筆記
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言