MVC與三層架構的區別

來源:互聯網
上載者:User

標籤:style   color   使用   strong   資料   代碼   sp   on   c   

1.三層架構的理解:三層架構通常將業務分為:資料訪問層(對資料庫中的資料的相關操作)、商務邏輯層(對資料庫層的操作、業務的邏輯處理和對資料層的保護即資料的安全性)和顯示層(將資訊呈現在使用者面前);

2.MVC是一個展現的模式。

   三層是基於業務來分的而MVC是基於頁面來分的;MVC主要用於表現層,3層主要用於體系架構,3層一般是表現層、中介層、資料層,其中表現層又可以分成M、V、C,(Model View Controller)模型-視圖-控制器;MVC是表現層的架構,MVC的Model實際上是ViewModel,即供View進行展示的資料。 ViewModel不包含商務邏輯,也不包含資料的讀取。M是指資料模型,V是指使用者介面,C則是控制器。使用MVC的目的是將M和V的實現代碼分離,從而使同一個程式可以使用不同的表現形式,C存在的目的則是確保M和V的同步,一旦M改變,V應該同步更新。

  注釋:MVC中的model與view是可以直接關聯的不一定非要控制器來當中間橋樑,三層中的model一般不包括資料的讀取。

      MVC的重要特點是分離,兩種分離:

     View和資料(Model)的分離使用不同的View對相同的資料進行展示;分離可視和不可視的組件,能夠對Model進行獨立測試。因為分離了可視組件減少了外部依賴利於測試。(資料庫也是一種外部組件);
  View和表現邏輯(Controller)的分離Controller是一個表現邏輯的組件,並非一個商務邏輯組件。MVC可以作為表現模式也可以作為構建模式,意味這Controller也可以是商務邏輯。分離邏輯和具體展示,能夠對邏輯進行獨立測試。

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

  三層可以應用於任何語言、任何技術的應用程式;而MVC只是為瞭解決BS應用程式視圖層各部分的耦合關係。它們互不衝突,可以同時存在,也可根據情況使用其中一種。

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.