使用PureMVC設計Swing 應用程序
寫過些Swing的東西,感覺View 和 Controller之間的緊耦合,甚是惱人。看了PureMVC後感覺其對關注點的分離還是做的很好,結合網上的資料和自己的體會記錄於此。
PureMVC中,引入了Mediator模式去解耦View和Controller,並協調多個view之間協同工作,用Event機製去在不同層間傳遞信息(其實現是用了Observer模式,利用Register/Notify)
對於任何一個User Action(以User Login為例),要做的事情無非可以分解如下:
User Action: 用戶點擊“Login”按鈕
1. 當前組件對此Action的及時反應---(Login按鈕變disable,防止用戶重複登錄)
2. Mediator接受事件通知---(通過Facade通知LoginDialogMediator去處理login事件)
3. Mediator委派Command處理action--- (通過Facade通知LoginCommand處理事件)
4.Command調用service/proxy處理業務邏輯---(UserProxy封裝檢查用戶登錄信息的業務邏輯,使用proxy的好處是程序比較flexible,方便以後提供不同的實現)
5. 對不同的處理結果,呈現不同的view給用戶---
5.1. 登錄成功,通知LoginDialogMediator去dispose登錄對話框;通知MainFrameMediator顯示歡迎信息
5.2 登錄失敗,通知LoginDialogMediator去提示出錯信息
在此過程中,我們可以清楚地看到MVC的責任劃分,View顯示展現邏輯,Mediator解耦view和controller,並協調多個view之間的協助,Controller(Command)處理用戶請求,Model封裝業務邏輯。
最後更新:2017-04-02 06:51:53