1. 程式人生 > >【Java架構學習】MVC和三層架構的區別

【Java架構學習】MVC和三層架構的區別

    其實這篇部落格的重點不是介紹三層架構,是重點介紹MVC並幫助理解MVC。學了這麼久MVC發現對它的理解還存在很多誤區,今天就來好好整理一下MVC。

    MVC即Model-View-Controller,其中M-V-C各代表什麼,我想即使我不一一列舉大家也都瞭然於胸了。因為太熟悉了,就像我們當初學習三層架構一樣,時間長了U-B-D各代表什麼含義信手拈來。但是我想說的是,我們是否對MVC的認識也只是停留在表面?

    哎呀,還是說一下吧,不說心裡難受。總所周知,在MVC中,代表的具體含義如下:

    M——Model,模型,處理應用程式中資料邏輯部分

    V——View,檢視,是資料顯示部分

    C——Controller,控制器,是處理使用者互動部分,負責從檢視中讀取資料並向模型傳送資料等。

”。但是我的理解可能有些不一樣。三層架構相對而言權責界限分明,分工明確,相互不過問超出各自職權的事,中間靠實體進行互動。

    而我理解的MVC架構模式:

    V是介面顯示,相當於三層架構的U層;

    M層模型層,相當於三層架構中的B層、D層和實體層,因為我理解M層負責的是和資料庫互動和業務邏輯部分; 

    C層控制層,負責的是從瀏覽器中獲取請求,然後按照相應的要求將使用者洗洗腦傳遞給模型,告訴模型要做什麼。

    上面這張圖也許會幫助我們更好的理解MVC。除此之外,有人提過,說C層沒有任何業務邏輯。這一點我也有不同的意見,這就要看你較不較真了,要是真較真兒,

C層和M層互動,M層負責主要的業務邏輯處理,相互要互動,C層就要知道這些邏輯,所以不可避免的C層也需要有一小部分的業務邏輯做支援。但是,你要清楚的是,主要的業務邏輯部分還是在M層處理的。所以如果不細揪的話,就可以把C層控制層理解成獲取請求,將使用者輸入的指令和資料傳遞給M層進行處理;M層負責業務處理和進行資料庫互動;V層則根據業務邏輯選擇不同的檢視,負責顯示出來。

    可能我認識的MVC跟網上出現的觀點不太一樣,至於孰對孰錯,這個待以後繼續深入學習後再做評判。下篇文章我將繼續MVC的內容,討論一下Model1和Model2,敬請期待吧!