閱讀984 返回首頁    go 阿裏雲 go 技術社區[雲棲]


使用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

  上一篇:go 看看baidu是如何AJAX跨域的
  下一篇:go IO學習筆記(一)