標籤: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與三層架構的區別