三層架構與MVC & 設計模式的較量

剛剛學習了三層架構,而且正在實際應用中,但隨着學習的深刻,又瞭解到了一個叫MVC的東西,(早在設計模式中就聽到過MVC,僅僅是簡單查了一下什麼意思.)現在正好把這三個東西放在一塊兒聊聊.java

 

三層數據庫

是一個分層式的軟件體系架構設計,它可適用於不論什麼一個項目。設計模式

它是從整個應用程序架構的角度把程序分爲三層UI,BLL,DAL固然假設程序需要,還可以分多層)。架構

三層是爲了解決整個應用程序中各個業務操做過程當中不一樣階段的代碼封裝的問題,爲了使程序猿更加專一的處理某階段的業務邏輯。框架

比方將數據庫操做代碼封裝到一層中,提供一些方法依據參數直接返回用戶需要的對應數據,這樣在處理詳細的業務邏輯的時候。就不用關心數據的存儲問題了。jsp

詳見學習

http://blog.csdn.net/u010028869/article/details/24711163spa

 

MVC.net

全名是Model ViewController,是模型(model)-視圖(view)-控制器(controller)的縮寫,一種軟件設計典範。架構設計

它強制性的使應用程序輸入處理輸出分開。使用MVC應用程序被分紅三個核心部件:模型視圖控制器

它們各自處理本身的任務。

     Model(模型)是應用程序中用於處理應用程序數據邏輯的部分。

                一般模型對象負責在數據庫中存取數據。

     View(視圖)是應用程序中處理數據顯示的部分。

               一般視圖是根據模型數據建立的。

     Controller(控制器)是應用程序中處理用戶交互的部分。

              一般控制器負責從視圖讀取數據。控制用戶輸入。並向模型發送數據。

 

MVC 分層有助於管理複雜的應用程序,因爲可以使咱們在一個時間內專門關注一個方面。

好比,可以在不依賴業務邏輯的狀況下專一於視圖設計。同一時候MVC使應用程序的測試更加easy。

 

MVC和三層架構是不一樣的

(就表面知識來講)

三層架構是界面層(UI)業務邏輯層(BLL)和數據訪問層(DAL)構成的,而MVC是模型層(M)界面層(View)和控制層(Controller)構成的,而且他們之間也不是一一相應.

假設硬要給他們相應的話,那麼三層架構中的UI相應MVC中的viewjsp),都是用於顯示以及獲取界面的數據;三層架構中的BLL層和DAL層相應MVC中的Modeljavabean)層都是用於處理上層傳遞來的數據以及從數據庫獲取的數據的。MVC中的ControllerServlet)最多算是三層架構中的UI的一部分,也就咱們常說的是Servlet

例如如下圖所看到的:

                   

 

MVC和三層架構是一樣的

(就他們的目的來講)

先驅們爲何會設計出MVC和三層架構呢?它們有這一個共同的目標!----分層。解耦!

從解耦的角度來看三層架構和MVC事實上他們是一致的,僅僅只是劃分的方法不同罷了。

饅頭和麪條。表面上看他們不同但是他們核心是一致的,都是面……

 

三層&MVC與設計模式的較量

首先MVC不是設計模式,它同三層同樣都是架構級別的,是一種架構模式.

 

MVC框架與設計模式儘管類似,但卻有着根本的不一樣。

設計模式是對在某種環境中重複出現的問題以及解決該問題的方案的描寫敘述,它比框架更抽象;框架可以用代碼表示,也能直接運行或複用。而對模式而言僅僅有實例才幹用代碼表示;設計模式是比框架更小的元素。一個框架中每每含有一個或多個設計模式。框架老是針對某一特定應用領域,但同一模式卻可適用於各類應用。

 

總而言之:框架是大智慧,用來對軟件設計進行分工;設計模式是小技巧。對詳細問題提出解決方式,以提升代碼複用率,減小耦合度。

儘管MVC的學習還沒開始,先提早接觸下,有什麼錯誤的地方請指正!

相關文章
相關標籤/搜索