標籤:java c 檔案 資料 使用 a
首先,向讀者介紹一下mvc架構,mvc是一種源於傳統型程式的架構模式,它的基本思想是把程式介面和商務邏輯分開,這樣便於軟體的後期維護,同時也方便開發時期分工及管理,mvc有很多有點所以現在已經被廣泛的應用與web開發中。
下面介紹一下自己瞭解mvc架構的經曆,和其中的一些誤區,以便於讀者可以更好的理解什麼是mvc;我第一次接觸mvc是在學習php的過程中,php是很經典的一個web開發語言可以,適合一些中小型基於非伺服器計算為核心的項目,慚愧現在才知道自己之前學的php的mvc是一種誤解。mvc字面意思很簡單就是模型(M),視圖(V),控制器(C)視圖的作用是將程式啟動並執行結果呈現給使用者,模型的作用則是實現使用者的商務邏輯,主要就是接收使用者的參數,完成一些運算,以及訪問資料庫。mvc是一種思想,是一種橫向的分層,javaEE中的mvc比php更加成熟,結構更加合理,加上java的特點(優越的跨平台性)可以利用mvc構建出很強大的叢集系統。
下面說一下javaEE的mvc,再次強調一下mvc是一種橫向分層的思想,有了這樣額思想你可以構建出各種系統,只要基於這種思想就可以了,可以有不同的實現,javaEE中視圖層一般用jsp,當然你也可以採用html+ajax技術實現一個高可互動性的非同步通訊的web應用;模型層是用javabean為主體,實現java的商務邏輯;控制器則是用servlet實現,這樣整體上來說javaEE為不同的角色提供了不同的標準,使得程式員開發更加簡單。
下面說說三層經常聽到的三層架構模式,首先再次重申一下三層架構和mvc是兩個概念,初學者很容易把他們當作一個概念,認為mvc就是三層架構,三層架構就是mvc,這樣認為會讓你把很多概念混淆,對理解系統也會有一些困難。三層架構分為展示層,邏輯層,持久層;其中展示層是屬於web方面的開發,對應與mvc的視圖和控制器,當然javaEE中的過濾器也是屬於展示層的,雖然它和標識沒有什麼關係,但他的實現技術是一種橫切技術,將request的請求作為一個過濾,過濾以後傳到控制器,控制器根據需要調用商務邏輯和視圖層顯示給使用者,所以講過濾器分到展示層,主要是因為他是屬於web技術,而且是在控制層以上。邏輯層和持久層是為了程式的可移植性我們把mvc中的模型層分為專門用於計算的邏輯層和專門訪問資料的持久層(包括訪問資料庫、訪問xml、以及訪問其他可以永久儲存資料的檔案等),商務邏輯層主要是javabean實現;而持久層最常見的就是dao,封裝了資料庫的所有操作。其實三層架構從結構來說是縱向的分層,上層依賴於下層,而下層不依賴於上層,即單項依賴。
總結一下,mvc是系統橫向的分層模型,而三層架構是縱向的分層,mvc是一種思想,實現了mvc應該使使用者不可以直接存取jsp(視圖),即使不需要調用商務邏輯實現功能也應該讓使用者的所有操作都經過控制器,由控制器跳轉到視圖。三層架構是縱向的分層,將整個系統封層3層,3層從上到下有單項的依賴,其中邏輯層是核心,實現了系統的主要功能,其他的兩層主要是為了實現系統額擴充,如系統需要更換顯示介面則只需要更改視圖就可以了,如需要更改資料庫,則只需要更改持久層就可以,不用改變程式的核心代碼(邏輯層)。這種架構主要適用於大型項目的架構,設計人員可以根據項目的規模靈活的設計項目的架構,比如可以採用最簡單的jsp直接存取資料庫的架構模式、jsp+javabean(sun的model1)、mvc+1(即橫向按mvc模式架構,縱向只分一層——servlet直接存取資料庫)、mvc+2(即橫向按mvc模式架構,縱向只分兩層——servlet調用邏輯層訪問資料庫)、mvc+3(即橫向按mvc模式架構,縱向只分三層——servlet調用商務邏輯,商務邏輯訪問資料庫);當然不同的架構適用不同規模的項目,具體還要視項目情況而定。