紅知博客

          知其然,亦知其所以然
          posts - 32, comments - 35, trackbacks - 0, articles - 0

          MVC1與MVC2得的概念與區別

          Posted on 2007-09-28 10:27 紅子 閱讀(2887) 評論(1)  編輯  收藏 所屬分類: J2EE 綜合Struts設計模式

          基本概念:

          M:Model 程序的業務

          V:View 程序的界面

          C:Controller 程序的控制部分

          1.MVC1模式

          view接受用戶輸入,并傳遞到controller.

          controller統一進行處理命令,交由model處理具體的業務.

          進過處理model更新后,通知view進行更新.

          這種模式主要用于桌面程序,使用觀察者模式實現,具體來說就是讓View觀察Model,而用戶交互控制的地方用匿名類的方式統一放在controller中.

          2.MVC2模式

          view接受用戶輸入,并傳遞到controller.

          controller統一進行處理命令,交由model處理具體的業務.

          進過處理model更新后,controller會選一個view并把model內容傳遞(request,session)給它(forward).

          然后view進行顯示.

          3.區別

          可以看到,model是否能主動通知view就是二者的主要差別.桌面程序可以做到,所以使用MVC1;Web程序由于Http協議的限制做不到,所以使用MVC2.


          附錄:
              mvc1 模式:

          view接收用戶輸入,把命令傳到controller
          controller處理命令,更新model
          model被更新后,會通知view需要update
          view更新后向用戶顯示

              mvc2 模式:

          由于mvc1中,model可以通知view,然后view就可以被更新,這在windows程序中很常見,像MFC的frame-document-view架構,如果document改變了,他會主動通知view進行update

          但是在web中,作為model的java bean更新后,無法調用作為view的jsp(而且view通常很多,需要選一個),因此改為mvc2模式:

          view接收用戶輸入,把命令傳到controller
          controller處理命令,更新model
          model被更新后,controller會選一個view并forward到這個jsp,附帶把model放到request參數
          這個view獲得model然后顯示

          Feedback

          # re: MVC1與MVC2得的概念與區別  回復  更多評論   

          2007-09-28 16:25 by 千里冰封
          不錯,兩者都有特點
          我要啦免费统计
          主站蜘蛛池模板: 广汉市| 景泰县| 宜阳县| 华亭县| 榆中县| 鲁山县| 新河县| 德清县| 苍梧县| 天峨县| 綦江县| 重庆市| 定日县| 尼木县| 呈贡县| 井研县| 西林县| 老河口市| 平度市| 阆中市| 商河县| 梧州市| 永丰县| 大化| 盐津县| 泗洪县| 墨竹工卡县| 石渠县| 东乡县| 施甸县| 双鸭山市| 阿克| 南充市| 临夏县| 任丘市| 九江市| 韶关市| 清远市| 桃江县| 新丰县| 郧西县|