<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    J2EE之巔

     

    關于MVC模式中的通知機制

    關于 MVC 模式中的通知機制

    蔡超

    1         MVC 簡介

    一般應用中用戶界面的變化相對較為頻繁 , 有時需要支持多種表現模式(如 WEB 客戶端和 GUI 客戶端),但是數據和業務邏輯相對保持穩定。

    MVC(Model-View-Controller) 模式是一種常用的設計模式 ,MVC 將模型 , 顯示和控制進行了分離,可以使得應用更加方便實現對多種表現模式的支持及降低表現形式修改對整體系統的影響。由于本文重點討論的是 MVC 中的通知機制,至于 MVC 的其它內容可以參考其它相關文檔。

     

     

    1.GIF
    圖表
    1 MVC 模式

    2         MVC 的通知機制

    上圖是在 SUN J2EE BluePrints 中關于 MVC 模式的描述 , 在實現 MVC 模式時首先應該注意的是模型與視圖之間的關系。在這些關系中尤其值得大家注意的是模型通知視圖,如果不能正確的設計這個通知機制(模型與視圖之間關聯實現通知)便會完全違背 MVC 的設計初衷。 MVC 模式的其中一個目的在于使模式獨立與視圖,然而不正確的理解和設計通知機制會導致模型和試圖的依賴性。

    2.1     采用 Observer 模式實現通知機制

    既要實現模式到視圖的通知機制,同時有要確保實現模型與視圖的分離。通常我們可以通過Observer模式來實現這樣的通知機制。

    2.GIF


    圖表2 Observer模式

    視圖實現 Observer 接口,并向模型注冊,模型通過調用所維護的觀察者的實例調用 Update 方法來通知視圖進行刷新。可見, Observer 接口有效的實現了模型和視圖間的耦合性的分離。

     

     

    2.2     模型通知視圖還是控制器通知視圖

     

    3.GIF
    圖表
    3 基于 MVC J2EE 應用

    在將 MVC 模式應用于的總體結構時,常常會有是模型通知視圖還是控制器通知視圖的問題,其實我認為這個問題完全取決于對系統各個部分的劃分和理解,如果我們把模型層更多劃分為數據實體 ( 如: Entity Bean) 則可能會發現,其實我們的通知機制是不能由模型部分來完成的,而是由我們的控制器來完成的。這種劃分好象有些違背了 MVC 模式,但實事上特別是一些想要同時支持 B/S C/S J2EE 應用,控制器和模式通知機制常常有較大的耦合性( C/S 結構中,客戶完全通過會話 Bean 來完成業務),可能有時在一起實現更好。

    總之,更好的內聚性和更松散的耦合性才是架構設計的重點,應該做出適合自身應用的 MVC 架構。

     

     

    3         結束語

    MVC 模式的關鍵在于分離易變和不易變部分間的耦合性,所以在應用 MVC 模式時一定要注意解耦才是關鍵,同時一定要更據具體的使用環境進行調整,不要生搬硬套,如 Microsoft MFC 采用的 Document-view 就是 MVC 的變體,它把控制器合并到視圖中,這是因為考慮了視圖與控制器緊耦合的影響。

     

    【參考文獻】

    1.  Sun Microsystem J2EE BluePrints

    2.  GOF,Design Patterns, 機械工業出版社, 2002

     

    作者: 蔡超 

     

    posted on 2006-08-05 18:28 超越巔峰 閱讀(1276) 評論(0)  編輯  收藏 所屬分類: Design Pattern

    導航

    統計

    常用鏈接

    留言簿(12)

    隨筆分類(54)

    隨筆檔案(59)

    文章分類(2)

    文章檔案(1)

    相冊

    搜索

    積分與排名

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 久久亚洲AV永久无码精品| 日韩一区二区免费视频| 亚洲狠狠婷婷综合久久久久| 美女啪啪网站又黄又免费| 四虎免费影院4hu永久免费| 精品亚洲国产成人av| 全亚洲最新黄色特级网站| 又粗又长又爽又长黄免费视频| 亚洲成a人片在线观看久| 国产精品福利在线观看免费不卡| 久久久久国产亚洲AV麻豆| 东方aⅴ免费观看久久av | 一区二区三区免费视频网站| 四虎免费永久在线播放| 精品人妻系列无码人妻免费视频| 久久久久国产成人精品亚洲午夜| 精品国产一区二区三区免费| 精品亚洲A∨无码一区二区三区| 亚洲国产精品无码久久一线| 黄色片免费在线观看| 亚洲第一精品电影网| 热99re久久免费视精品频软件| 国产亚洲男人的天堂在线观看| 亚洲人成网站色在线入口 | 亚洲中文字幕伊人久久无码| 在线观看黄片免费入口不卡| 亚洲精品自拍视频| 日韩在线看片免费人成视频播放| 一级成人生活片免费看| 亚洲最大福利视频网站| 免费看香港一级毛片| jzzjzz免费观看大片免费| 久久亚洲精精品中文字幕| 日韩a级毛片免费观看| 在线观看免费视频网站色| 亚洲天堂福利视频| 无码欧精品亚洲日韩一区夜夜嗨| 日本黄色动图免费在线观看| 亚洲欧美黑人猛交群| 国产成人亚洲综合无码精品| 麻豆国产VA免费精品高清在线|