隨筆 - 25  文章 - 32  trackbacks - 0
          <2012年11月>
          28293031123
          45678910
          11121314151617
          18192021222324
          2526272829301
          2345678

          常用鏈接

          留言簿(2)

          隨筆檔案

          文章分類(lèi)

          文章檔案

          相冊(cè)

          搜索

          •  

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          同樣是架構(gòu)級(jí)別的,它們有什么相同點(diǎn)和不同點(diǎn)呢?這篇文章討論一下它們的異同點(diǎn)。希望能幫助讀者理解其中的玄機(jī)。 :)

          其實(shí)它們相同的地方在于他們都有一個(gè)表現(xiàn)層。

          但是他們不同的地方在于其他的兩個(gè)層。

          首先先解釋一下MVC。V即View.是視圖的意思。C即Controler.是控制器的意思。而M即Model,是模型的意思。這三個(gè)里.最不容易理解的應(yīng)該是Model.就是什么是Model,而為什么叫Model。我先不說(shuō)為什么叫Model,先解釋Controler。

          Controller是控制器的意思,所謂控制器,就是將用戶請(qǐng)求轉(zhuǎn)發(fā)給模型層,經(jīng)過(guò)處理后把結(jié)果返回到界面展現(xiàn)的一個(gè)中間層,那么Controler到底管什么工作呢?先不說(shuō).先來(lái)看下在Java Web中這三個(gè)層一般的定義,一般在Java Web里,JSP充當(dāng)V,Servlet充當(dāng)C,JavaBean充當(dāng)M,這里的Servlet管什么工作呢?接受輸入,轉(zhuǎn)到Model層去處理,處理結(jié)果保存后轉(zhuǎn)發(fā)到JSP,然后展現(xiàn)數(shù)據(jù)。所以它的功能就是控制器的基本功能,它就管轉(zhuǎn)發(fā),在V和M之間轉(zhuǎn)來(lái)轉(zhuǎn)去。

          再來(lái)說(shuō)說(shuō)M,即Model,在Java Web里說(shuō)的是JavaBean,我認(rèn)識(shí)的很多人都把JavaBean誤認(rèn)為是實(shí)體類(lèi),其實(shí)JavaBean有比實(shí)體類(lèi)更豐富的定義,在JavaBean中除了其屬性和字段,還可以有行為及其事件,JavaBean可以理解為普通Java對(duì)象。Java普通對(duì)象,就是符合Java規(guī)范的所有對(duì)象,這和實(shí)體類(lèi)完全是兩回事。所以,我認(rèn)為在MVC中。業(yè)務(wù)邏輯和數(shù)據(jù)訪問(wèn)應(yīng)該放在Model層,也就是V負(fù)責(zé)展示數(shù)據(jù),Controler除了轉(zhuǎn)發(fā)不做業(yè)務(wù)邏輯。真正的邏輯事務(wù),數(shù)據(jù)訪問(wèn),甚至算法都放到Model去。

          再說(shuō)三層架構(gòu)。三層其實(shí)很好理解,界面,業(yè)務(wù),數(shù)據(jù)訪問(wèn),就這三個(gè),從字面都可以理解出它們的意思。我要說(shuō)的是它和MVC的區(qū)別。在三層架構(gòu)中沒(méi)有定義Controler的概念。這是我認(rèn)為最不同的地方。而MVC也沒(méi)有把業(yè)務(wù)的邏輯訪問(wèn)看成兩個(gè)層,這是采用三層架構(gòu)或MVC搭建程序最主要的區(qū)別。

          當(dāng)然了。在三層中也提到了Model,但是三層架構(gòu)中Model的概念與MVC中Model的概念是不一樣的,“三層”中典型的Model層是已實(shí)體類(lèi)構(gòu)成的,而MVC里,則是由業(yè)務(wù)邏輯與訪問(wèn)數(shù)據(jù)組成的。不一樣的概念。雖然名字一樣。

          posted on 2008-07-01 20:30 phyeas 閱讀(11927) 評(píng)論(2)  編輯  收藏

          FeedBack:
          # re: MVC與三層架構(gòu)的異同點(diǎn) 2011-05-17 14:51 re: 軟件工程國(guó)家標(biāo)準(zhǔn)文檔[下載]
          這個(gè)是我看過(guò)的比較易懂的講述。  回復(fù)  更多評(píng)論
            
          # re: MVC與三層架構(gòu)的異同點(diǎn) 2012-11-01 19:53 body
          太謝謝你了 非常受益  回復(fù)  更多評(píng)論
            

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 苏尼特右旗| 墨脱县| 什邡市| 康马县| 垫江县| 灵川县| 泰和县| 化隆| 丰城市| 百色市| 宜兰县| 五大连池市| 若羌县| 阜阳市| 淄博市| 上栗县| 萍乡市| 高淳县| 清苑县| 闸北区| 东乌珠穆沁旗| 中方县| 汕头市| 新邵县| 苍梧县| 孝昌县| 江山市| 华阴市| 襄樊市| 达拉特旗| 土默特右旗| 福清市| 米脂县| 微山县| 高碑店市| 常德市| 玉林市| 简阳市| 乌兰县| 泰宁县| 德安县|