三層架構和MVC模型的常識

來源:互聯網
上載者:User

標籤:架構

一、三層架構:1、表現層(UI):通俗講就是展現給使用者的介面,即使用者在使用一個系統的時候他的所見所得。2、商務邏輯層(BLL):針對具體問題的操作,也可以說是對資料層的操作,對資料商務邏輯處理。3、資料訪問層(DAL):該層所做事務直接操作資料庫,針對資料的增添、刪除、修改、尋找等。

優點1、開發人員可以只關注整個結構中的其中某一層;2、可以很容易的用新的實現來替換原有層次的實現;3、可以降低層與層之間的依賴;4、有利於標準化;5、利於各層邏輯的複用。6、結構更加的明確7、在後期維護的時候,極大地降低了維護成本和維護時間缺點1、降低了系統的效能。這是不言而喻的。如果不採用分層式結構,很多業務可以直接造訪資料庫,以此擷取相應的資料,如今卻必須通過中介層來完成。2、有時會導致級聯的修改。這種修改尤其體現在自上而下的方向。如果在展示層中需要增加一個功能,為保證其設計符合分層式結構,可能需要在相應的商務邏輯層和資料訪問層中都增加相應的代碼。3、增加了開發成本。

二、MVC:MVC模式(Model-View-Controller)是軟體工程中的一種軟體架構模式,把軟體系統分為三個基本部分:模型(Model)、視圖(View)和控制器(Controller)。
  • (控制器Controller)- 負責轉寄請求,對請求進行處理。
  • (視圖View) - 介面設計人員進行圖形介面設計。
  • (模型Model) - 程式員編寫程式應有的功能(實現演算法等等)、資料庫專家進行資料管理和資料庫設計(可以實現具體的功能)。

對於三個層次更詳細的解釋:
  • 模型(Model) 用於封裝與應用程式的商務邏輯相關的資料以及對資料的處理方法。“模型”有對資料直接存取的權力,例如對資料庫的訪問。“模型”不依賴“視圖”和“控制器”,也就是說,模型不關心它會被如何顯示或是如何被操作。但是模型中資料的變化一般會通過一種重新整理機制被公布。為了實現這種機制,那些用於監視此模型的視圖必須事先在此模型上註冊,從而,視圖可以瞭解在資料模型上發生的改變。(比較:觀察者模式(軟體設計模式))
  • 視圖(View)能夠實現資料有目的的顯示(理論上,這不是必需的)。在視圖中一般沒有程式上的邏輯。為了實現視圖上的重新整理功能,視圖需要訪問它監視的資料模型(Model),因此應該事先在被它監視的資料那裡註冊。
  • 控制器(Controller)起到不同層面間的組織作用,用於控制應用程式的流程。它處理事件並作出響應。“事件”包括使用者的行為和資料模型上的改變。

MVC的優點:      1、首先,多個視圖能共用一個模型。在MVC設計模式中,模型響應使用者請求並返迴響應資料,視圖負責格式化資料並把它們呈現給使用者,商務邏輯和展示層分離,同一個模型可以被不同的視圖重用,所以大大提高了代碼的可重用性。2、其次,控制器是自包含(self-contained)指高獨立內聚的物件,與模型和視圖保持相對獨立,所以可以方便的改變應用程式的資料層和商務規則。
MVC和三層架構的區別:同樣是架構層級的,相同的地方在於他們都有一個表現層,但是他們不同的地方在於其他的兩個層。在三層架構中沒有定義Controller的概念。這是最不同的地方。而MVC也沒有把業務的邏輯訪問看成兩個層,這是採用三層架構或MVC搭建程式最主要的區別。當然了。在三層中也提到了Model,但是三層架構中Model的概念與MVC中Model的概念是不一樣的,“三層”中典型的Model層是以實體類構成的,而MVC裡,則是由商務邏輯與訪問資料群組成的。

三層架構和MVC模型的常識

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.