這個框架是乙個 實現非常精簡mvc 框架 ,適用於 c/s 結構的程式。
框架的核心類有
controller
view
modle
controller 中包含對view的引用 並且包含對 map
string 是通知 型別的名字 ,command 是對應的 命令操作
view 中有乙個 map>; map
mediator 和 相應的 command 都在 view 中註冊,mediator 用於管理 view 與檢視之間的複雜性 ,其實 mediator 可以直接註冊在 controller 中 ,view 的作用是
讓 mediator 和 controller 解耦,。
modle 則負責管理proxy ,目的是 讓 command 與 proxy 解耦
command 的接受者其實就是 proxy ,利用 proxy 的邏輯來完成處理 。
observer 模式 在這裡 實現為 乙個 observer 需要定義 ifunction 物件 來處理響應, notifaction 定義傳輸的訊息型別 ,notifer 則是通知的發出者,用來通知各路觀察者
是通過 facade 的 notifyobservers 方法, 而observers 方法 有兩個註冊途徑 一是在controller 中註冊command ,另外就是 在view中註冊medaitor 。
proxy 作為**類 處理各種業務邏輯,可以進行訪問控制? private object data = null 這個屬性我想是不是定義乙個被**型別的物件呢??
facade 的應用 , singleton 的應用 ,注意是多執行緒模式下, 實現方法是 同步了 靜態方法 ,相當於在 class 物件上加鎖了。
總的來說
iproxy ,command ,modle三個類實現了notifier 介面 ,可以實現通知機制 , 在controller 中實現了註冊命令的功能,在view 中實現了註冊mediator 的功能, 在與元件互動上,mediator 實現了 各種顯示頁面的可變性。
實際應用流程如下,
實現 mediator 介面 , 在 controller 中註冊 關注的事件, 在 使用者介面中事件出發 通過model 交給 proxy 處理 結果返回,並發出結果通知事件,來通知view 選擇 適當的 mediator 來顯示元件。
個人猜想 struts 應該也是類似的架構,不過應該複雜很多 ,所以 以後再分析 struts
上面利用了模式
1.單例
2.門面
3.命令
4.**
5.中介者
6.觀察者
其中 單例 是為了保證框架只有乙個入口
門面 是將整個系統功能整理處理 並提供乙個小介面的api
命令 實現controller 與 處理邏輯的 解耦, 與 web mvc 中的 前端控制器乙個意思 struts 本就是可以實現 事件定義者 和處理者 解耦,命令模式 就是把接受者和處理邏輯放在command裡面 command一般實現 execute 並在適當的時候被呼叫。
** 實現了多業務邏輯的處理,並可以實現訪問控制
中介者 中介者模式實現了 對顯示元件一view 之間複雜關係的解耦
觀察者 實現了通知機制,使得在 view 中註冊的各種 觀察者得到通知。
菜鳥學PureMVC記
最近工作中需要用到flash,開發框架中又是以puremvc為主。mvc是有了解,但是puremvc這個之前則是從沒接觸過。那就學唄 字樣。其中的大概做法,就是解壓,然後將 puremvc as3 2 0 4.swc 新增到專案的庫中。因為,我用的是flashdevelop,所以新增方法如下 選中專...
如何學設計模式
在第一遍學設計模式的時候以看為主,把書中的內容理解,在這個過程中會發現內容很簡單,能很快看完,有種沒多少東西的感覺。是這樣嗎?不然,在緊隨其後的第二遍學習中,以寫 實踐為主,這時候會遇到很多問題,程式執行不起來 不理解,等等。在這一遍的學習中要解決的問題是把 理解了,初極難,但隨著學習的不斷進行,會...
從設計模式怎樣提公升設計
設計模式是一種非常有用的設計參照,基本上每次去讀設計模式的內容總是會獲得新的體會。但是有沒有新的模式呢?我想,這個大概是有的,不過新的模式產生估計會非常困難。在編碼一段時間之後,大概在一年或者兩年之後,我們一般都在想,可不可以把編碼做的更好一些,讓別人更加容易閱讀,更加好維護,更加好修改。懷著這種簡...