三層架構和MVC模式_架構

來源:互聯網
上載者:User
1、三層架構

三層架構(3-tier application) 通常意義上的三層架構就是將整個業務應用劃分為:表現層(UI)、商務邏輯層(BLL)、資料訪問層(DAL)。區分層次的目的即為了“高內聚,低耦合”的思想。

1、表現層(UI):通俗講就是展現給使用者的介面,即使用者在使用一個系統的時候他的所見所得。 

2、商務邏輯層(BLL):針對具體問題的操作,也可以說是對資料層的操作,對資料商務邏輯處理。 

3、資料訪問層(DAL):該層所做事務直接操作資料庫,針對資料的增添、刪除、修改、更新、尋找等。 


    表現層實現的代表作品是Struts架構,業務層實現的代表作品是Spring,持久層實現的代表作品是Hibernate。 

舉個例子:

持久層從持久庫中取出-10。

業務層按照一定的邏輯(這裡我們舉例取溫度的邏輯)翻譯成-10攝氏度。

展示層顯現給使用者“哎呀,今天好冷。”。

層就相當於一個黑盒子,我們不用知道它內部怎麼實現,只需要知道如何去調用它就行了。每層只與上下相鄰的兩層打交道。當一層內部由於技術變遷發生變化時,只要介面不變,其他層不用做任何改變。分層之後靈活性提高,也便於團隊分工開發。


2、MVC 2.1 標準的MVC(Model-View-Controller)

Model(模型):資料模型,提供要展示的資料,因此包含資料和行為,可以認為是領域模型(domain)或JavaBean組件(包含資料和行為),不過現在一般都分離開來:Value Object(資料) 和 服務層(行為)。也就是模型提供了模型資料查詢和模型資料的狀態更新等功能,包括資料和業務。

View(視圖):負責進行模型的展示,一般就是我們見到的使用者介面,客戶想看到的東西。

Controller(控制器):接收使用者請求,委託給模型進行處理(狀態改變),處理完畢後把返回的模型資料返回給視圖,由視圖負責展示。 也就是說控制器做了個調度員的工作。

  從圖中我們還看到,在標準的MVC中模型能主動推資料給視圖進行更新(觀察者設計模式,在模型上註冊視圖,當模型更新時自動更新視圖),但在Web開發中模型是無法主動推給視圖(無法主動更新使用者介面),因為在Web開發是要求-回應模型。 2.2 Web MVC

Web MVC中的M(模型)-V(視圖)-C(控制器)概念和標準MVC概念一樣,我們再看一下Web MVC標準架構,如下圖所示:

在Web MVC模式下,模型無法主動推資料給視圖,如果使用者想要視圖更新,需要再發送一次請求(即要求-回應模型)。


M:(Model)  模型  :  應用程式的核心功能,管理這個模組中用的資料和值;

V(View )視圖:   視圖提供模型的展示,管理模型如何顯示給使用者,它是應用程式的外觀;

C(Controller)控制器: 對使用者的輸入做出反應,系統管理使用者和視圖的互動,是串連模型和視圖的樞紐。

MVC用於將web(UI)層進行職責解耦


3、三層架構和MVC的區別與聯絡

    MVC是 Model-View-Controller,嚴格說這三個加起來以後才是三層架構中的UI層,也就是說,MVC把三層架構中的UI層再度進行了分化,分成了控制器、視圖、實體三個部分,控制器完成頁面邏輯,通過實體來與介面層完成通話;而C層直接與三層中的BLL進行對話。


MVC可以是三層中的一個表現層架構,屬於表現層。三層和mvc可以共存。

三層是基於商務邏輯來分的,而MVC是基於頁面來分的。

MVC主要用於表現層,3層主要用於體系架構,3層一般是表現層、中介層、資料層,其中表現層又可以分成M、V、C,(Model View Controller)模型-視圖-控制器 


MVC是表現模式(Presentation Pattern)

三層架構是典型的架構模式(Architecture Pattern)

三層架構的分層模式是典型的上下關係,上層依賴於下層。但MVC作為表現模式是不存在上下關係的,而是相互協作關係。即使將MVC當作架構模式,也不是分層模式。MVC和三層架構基本沒有可比性,是應用於不同領域的技術。

from: https://my.oschina.net/u/1020238/blog/519767

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.