程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> JSP編程 >> 關於JSP >> 三層架構與MVC的區別

三層架構與MVC的區別

編輯:關於JSP

 

本篇博客是從網上找得各種資料,一再說說三層架構和MVC的區別

 

 

     http://baike.baidu.com/view/687468.htm

         三層架構與MVC的區別  MVC(模型Model-視圖View-控制器Controller)是一種設計模式,我們可以用它來創建在域對象和UI表示層對象之間的區分。

 

  同樣是架構級別的,相同的地方在於他們都有一個表現層,但是他們不同的地方在於其他的兩個層。

 

  在三層架構中沒有定義Controller的概念。這是我認為最不同的地方。而MVC也沒有把業務的邏輯訪問看成兩個層,這是采用三層架構或MVC搭建程序最主要的區別。當然了。在三層中也提到了Model,但是三層架構中Model的概念與MVC中Model的概念是不一樣的,“三層”中典型的Model層是以實體類構成的,而MVC裡,則是由業務邏輯與訪問數據組成的。

 

 

      http://topic.csdn.net/u/20090710/14/07f4447d-60c4-4b74-af1c-ea1b6e2e9ca7.html

      當然啊,你要明白三層架構的MVC的區別和聯系:

       三層架構是最基本的項目分層結果,而MVC則是三層架構的一個變體,MVC是一種好的開發模式。首先你要明白MVC分別代表的是什麼意思.
M 即Model(模型層),主要負責出來業務邏輯以及數據庫的交互
V 即View(視圖層),主要用於顯示數據和提交數據
C 即Controller(控制器),主要是用作捕獲請求並控制請求轉發

      三層:UI 界面層 BLL 業務邏輯層,DAL數據訪問層,Model 實體層
MVC中的的M 不是三層中的Model(實體層),他其實包括三層中的 BLL,DAL,Model,這是非常要注意的,這也是他們之間的區別的關鍵所在

其有點有如下:
低耦合性
高重用性和可適用性
較低的生命周期成本
快速的部署
可維護性
有利於軟件工程化管理

當然優點也有缺點,那就是內部結構復雜,不容易理解,文件數量大,管理難度自然也就大

 

MVC設計模式…
三層架構…
他們細分之後得到的是:View(UI)、BIZ(BLL)、DAO(DAL)、Entity(Model)、Controller
MVC把 BIZ(BLL)、DAO(DAL)、Model(Entity) 統一稱之為 模型(MODEL),得到:View、Controller、模型(MODEL)
三層 在我使用中 暫未體會到控制器的存在,完全是:UI、DAO、BLL

他們相同的設計理念就是:把視圖設計與數據持久化進行分離,從而降低耦合性,易於擴展,提高團隊開發效率。

 

三層是基於業務邏輯來分的,而mvc是基於頁面來分的
根本就沒有什麼可比性。
其實兩個一起用我感覺很好

 

MVC模式是一種復合設計模式,一種解決方案
三層是種軟件架構,通過接口實現編程
三層模式是體系結構模式,MVC是設計模式
三層模式又可歸於部署模式,MVC可歸於表示模式

 

引用樓主 daijun17 的回復:
如何在三層架構和mvc之間進行取捨呢?



沒有什麼取捨的,說的根本不是一回事。在所謂的“三層”中,它要求你將BLL層獨立出來,它只是告訴你表示層和業務邏輯層之間的靜態關系。而MVC則告訴你在這個具體的地方如何處理其動態驅動流程,盡管mvc仍然粗糙(甚至mvp也是粗糙的),但是已經比所謂三層更細致一些了。

 

謝謝大家的關注,這幾天都在忙面試,沒來結貼。再次謝謝大家。
我大概明白了:三層架構和mvc設計模式側重點不一樣,三層是一種籠統的架構思想,沒有限制具體的設計;而mvc就比較具體的說明它的設計方法。
還是自己動手做一下,理解會更深一些,以前都是用三層架構的方法

 

 ---------

http://www.BkJia.com/kf/201110/106833.html

 

ASP.NET MVC 與 WebForm 三層架構 區別

1.傳統WebForm開發中存在的一些問題

傳統的ASP.NET開發中,微軟的開發團隊為開發者設計了一個在可視化設計器中拖放控件,編寫代碼響應事件的快速開發環境。然而,它所帶來的負面效應是:

由於控件封裝了很多東西,開發者很難了解這背後的HTML是如何運作的

容易得到一個包含大量ViewState的頁面,使得頁面尺寸遠遠超過所需的內容,使得頁面的打開速度較慢

不容易被測試

2.什麼是MVC?

MVC(Model-View-Controller,模型-視圖-控制器模式)是軟件工程中的一種軟件架構模式。它把軟件系統分為三個基本部分:模型(Model)、視圖(View)和控制器(Controller)。

3.什麼是ASP.NET MVC?

ASP.NET MVC是微軟的開發團隊基於MVC開發的一個易於被測試的框架。它具有以下特性:

沒有數據回傳

沒有在頁面中保存視圖狀態

開發者可以完全掌控頁面的呈現過程

易於單元測試

易於測試驅動開發

可擴展、可替換

支持WebForm中的有關特性,如:用戶控件、母版頁、數據綁定、本地化等

不在基於文件目錄結構,而是將URL映射到控制器中

4. 為什麼使用ASP.NET MVC?

易於進行單元測試

易於進行測試驅動開發

避免了WebForm中大量的ViewState導致頁面文件變得臃腫

5. MVC與三層架構?  

MVC是一種模式
ASP.NET MVC是一個基於MVC模式的開發框架
三層架構是一種架構

至於區別,可以嚴格的從概念上區分開來

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved