紅知博客

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

          MVC1與MVC2得的概念與區別

          Posted on 2007-09-28 10:27 紅子 閱讀(2889) 評論(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 千里冰封
          不錯,兩者都有特點
          我要啦免费统计
          主站蜘蛛池模板: 满洲里市| 洪雅县| 涟水县| 亚东县| 衡阳县| 朝阳县| 滕州市| 九寨沟县| 桐乡市| 南乐县| 景德镇市| 芒康县| 平陆县| 晋城| 建德市| 连城县| 平潭县| 文成县| 历史| 北川| 邵阳市| 含山县| 容城县| 福泉市| 永春县| 班戈县| 临朐县| 宁强县| 巴中市| 建湖县| 当雄县| 东光县| 荥阳市| 县级市| 绥中县| 尤溪县| 修水县| 天等县| 夏河县| 富蕴县| 泾阳县|