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