企業(yè)建網(wǎng)站基于MVC設(shè)計(jì)模式
日期 : 2020-06-07 20:21:27
基于MVC設(shè)計(jì)模式。模型(M)是數(shù)據(jù)的表述,它不是真正的數(shù)據(jù),而是數(shù)據(jù)的接口,使用它時(shí)我們無需知道底層數(shù)據(jù)庫的不同類型。視圖(V)使我們看到的界面,它是表現(xiàn)層??刂破?C)控制模型和視圖之間的信息流動(dòng),它通過程序邏輯來判斷模型從數(shù)據(jù)庫獲取了什么信息,將什么信息傳給了視圖。這種設(shè)計(jì)模式分離了應(yīng)用邏輯和表現(xiàn)邏輯,所有請(qǐng)求都通過控制器分發(fā),分發(fā)過程基于請(qǐng)求的URL.這種設(shè)計(jì)模式和上面的基于文件的模式一樣,都是基于請(qǐng)求/響應(yīng)驅(qū)動(dòng)的,服務(wù)器與客戶機(jī)之間的數(shù)據(jù)傳輸遵循Http協(xié)議。它是中小企業(yè)網(wǎng)站主流的程序設(shè)計(jì)模式,很多常用框架spring MVC(Java),Ruby on Rails(Ruby),Zend Framework(PHP)等都支持它。因?yàn)樗鼈冇泻芎贸绦蚪Y(jié)構(gòu)和代碼資源可供使用,給Web應(yīng)用程序設(shè)計(jì)帶來了極大便利,能夠滿足高內(nèi)聚、低耦合的要求。如有URL,http://www.sjsyd.com.zsc.vpn358.com/lib/book/1234.可以想象在實(shí)際代碼中,我們會(huì)有一個(gè)控制器l ib Co n tr o l le r,其中有一個(gè)bookAction。當(dāng)業(yè)務(wù)邏輯發(fā)生變化時(shí),只要在控制器上變化一下即可,從而實(shí)現(xiàn)表現(xiàn)(V)與模型(M)的分離,與asp/php業(yè)務(wù)邏輯和表現(xiàn)層混合編程方式相比,程序的修改要方便很多。不同框架可能默認(rèn)實(shí)現(xiàn)方式稍有不同,有的是一個(gè)Controller一個(gè)文件,其中有多個(gè)Action,有的是每個(gè)Action一個(gè)文件。還有更直接的基于URL的設(shè)計(jì)方案,那就是REST。通過人為規(guī)定URL的構(gòu)成形式(Action限制為只有幾種)來促進(jìn)網(wǎng)站之間的互相訪問,降低開發(fā)的復(fù)雜性,提高系統(tǒng)的伸縮性。