有關《MVC、三層》的討論

【前言】

這是一篇有關MVC與三層的討論文章,歡迎大家評論!說出自己的觀點。

【內容】

1.首先,什麼是MVC呢?

MVC全名是Model View Controller,是模型(model)-視圖(view)-控制器(controller)的縮寫,一種軟件設計典範,用一種業務邏輯、數據、界面顯示分離的方法組織代碼,將業務邏輯聚集到一個部件裏面,在改進和個性化定製界面及用戶交互的同時,不需要重新編寫業務邏輯。MVC被獨特的發展起來用於映射傳統的輸入、處理和輸出功能在一個邏輯的圖形化用戶界面的結構中。

其中,

Model模型,是業務模型 應用程序核心(比如數據庫記錄列表);

View視圖,用戶界面顯示數據(數據庫記錄);

C控制器,處理輸入(寫入數據庫記錄)。

2.MVC框架

一種軟件設計典範,用一種業務邏輯、數據、界面顯示分離的方法組織代碼,將業務邏輯聚集到一個部件裏面,在改進和個性化定製界面及用戶交互的同時,不需要重新編寫業務邏輯。MVC被獨特的發展起來用於映射傳統的輸入、處理和輸出功能在一個邏輯的圖形化用戶界面的結構中。

3.MVC編程模式

MVC 是一種使用 MVC(Model View Controller 模型-視圖-控制器)設計創建 Web 應用程序的模式:

Model(模型)表示應用程序核心(比如數據庫記錄列表)。

View(視圖)顯示數據(數據庫記錄)。

Controller(控制器)處理輸入(寫入數據庫記錄)。

(1)Model(模型)是應用程序中用於處理應用程序數據邏輯的部分。通常模型對象負責在數據庫中存取數據。

(2)View(視圖)是應用程序中處理數據顯示的部分。通常視圖是依據模型數據創建的。

(3)Controller(控制器)是應用程序中處理用戶交互的部分。通常控制器負責從視圖讀取數據,控制用戶輸入,並向模型發送數據。

MVC 分層有助於管理複雜的應用程序,因爲您可以在一個時間內專門關注一個方面。例如,您可以在不依賴業務邏輯的情況下專注於視圖設計。同時也讓應用程序的測試更加容易。

MVC 分層同時也簡化了分組開發。不同的開發人員可同時開發視圖、控制器邏輯和業務邏輯。

那MVC框架和MVC編程模式有什麼聯繫和區別呢?

4.框架與設計模式區別與聯繫

(1)框架通常是代碼重用,設計模式是設計重用,而架構介於兩者之間,部分代碼重用,部分設計重用,有時分析也可重用。

(2)設計模式是對在某種環境中反覆出現的問題以及解決該問題的方案的描述,它比框架更抽象;框架可以用代碼表示,也能直接執行或複用,而對模式而言只有實例才能用代碼表示;設計模式是比框架更小的元素,一個框架中往往含有一個或多個設計模式,框架總是針對某一特定應用領域,但同一模式卻可適用於各種應用。可以說,框架是軟件,而設計模式是軟件的知識

架構與框架 一個架構可以通過多種框架來實現;

框架與設計模式 一種設計模式可以應用於不同的框架被不同的語言實現;框架是多種設計模式和代碼的混合體。

架構與設計模式 一個架構中可能會出現多個設計模式來結果架構中的問題。

5. 爲什麼叫MVC呢?

起初並不是MVC,而是MVCE,也就是Model - View - Controller後面多了一個Editor。但是當時提出MVC的理念和現在的理念大致是一樣的。都是爲了講數據模型和視圖層分離開來。

其實MVC是一種框架模式,而非設計模式,GOF把MVC看做是3種設計模式:《觀察者模式》、《策略模式》,《組合模式》三者的合體。其核心是《觀察者模式》。

6.MVC架構與三層思想

三層是基於業務邏輯來分的,而mvc是基於頁面來分的

(1)三層是從整個應用程序架構的角度來分的三層(如果程序需要,還可以分多層)。三層是爲了解決整個應用程序中各個業務操作過程中不同階段的代碼封裝的問題,爲了使程序員更加專注的處理某階段的業務邏輯。比如將數據庫操作代碼封裝到一層中,提供一些方法根據參數直接返回用戶需要的相應數據,這樣在處理具體的業務邏輯的時候,就不用關心數據的存儲問題了。

(2)MVC是在應用程序(BS結構)的視圖層劃分出來的不同功能的幾個模塊。MVC主要是爲了解決應用程序用戶界面的樣式替換問題,把展示數據的 HTML 頁面儘可能的和業務代碼分離。MVC把純淨的界面展示邏輯(用戶界面)獨立到一些文件中(Views),把一些和用戶交互的程序邏輯(Controller)單獨放在一些文件中,在 Views 和 Controller 中傳遞數據使用一些專門封裝數據的實體對象,這些對象,統稱爲Models。

(3)之所以說MVC和三層毫無關係,是因爲它們二者使用範圍不同:三層可以應用於任何語言、任何技術的應用程序;而MVC只是爲了解決BS應用程序視圖層各部分的耦合關係。它們互不衝突,可以同時存在,也可根據情況使用其中一種。

參考博客:https://blog.csdn.net/qq_17478541/article/details/62897080

7. 瞭解ASP.NET MVC

(1)ASP.NET 是一個使用 HTML、CSS、JavaScript 和服務器腳本創建網頁和網站的開發框架。

ASP.NET 支持三種不同的開發模式:

Web Pages(Web 頁面)、MVC(Model View Controller 模型-視圖-控制器)、Web Forms(Web 窗體)。

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

沒有數據回傳;沒有在頁面中保存視圖狀態;開發者可以完全掌控頁面的呈現過程;易於單元測試;易於測試驅動開發;可擴展、可替換;支持WebForm中的有關特性,如:用戶控件、母版頁、數據綁定、本地化等;不在基於文件目錄結構,而是將URL映射到控制器中。

8. 瞭解Spring MVC

SpringMVC是一款Web MVC框架。

Spring 框架提供了構建 Web 應用程序的全功能 MVC 模塊。使用 Spring 可插入的 MVC 架構,從而在使用Spring進行WEB開發時,可以選擇使用Spring的Spring MVC框架或集成其他MVC開發框架。

9.有關討論博客參考

https://baike.baidu.com/item/三層架構/11031448?fr=aladdin

https://www.runoob.com/w3cnote/three-tier-architecture.html

歡迎大家多多評論!一起討論!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章