理解MVC模式
理解一般意義上的MVC模式
MVC模式(Model-View-Controller)是軟件工程中的一種軟件架構模式,把軟件系統分為以下三個基本部分:
- 模型(Model):模型用于封裝與應用程序的業務邏輯相關的數據以及對數據的處理方法。“模型”有對數據直接訪問的權力,例如對數據庫的訪問。“模型”不依賴“視圖”和“控制器”,也就是說,模型不關心它會被如何顯示或是如何被操作。
- 視圖(View):視圖能夠實現數據有目的的顯示。在視圖中一般沒有程序上的邏輯。
- 控制器(Controller)?:控制器起到不同層面間的組織作用,用于控制應用程序的流程。它處理事件并作出響應。“事件”包括用戶的行為和數據模型上的改變。
上面的定文來自維基百科。根據上面的定文和我個人的理解,我畫了下面這樣一張表示MVC各部分關系的圖:
注意,不同的平臺和不同的語言框架對MVC的定義各有不同,并沒有一個明確的定義。但大體上,MVC模式中的每個部分是分工明確、界定清晰的。操作數據的邏輯只存在于模型中,呈現數據的邏輯只存在于視圖中,處理用戶的請求和輸入只存在于控制器中。不管應用程序有多大、處于哪段生命周期,這種清晰的關注點分離(separation of concerns)的MVC模式讓我們的應用程序更容易維護和擴展。
理解領域模型
領域模型(Domain Model)?是對領域內的概念類或現實世界中對象的可視化表示。又稱概念模型、領域對象模型、業務對象模型。它專注于分析問題領域本身,發掘重要的業務領域概念,并建立業務領域概念之間的關系。 領域模型是描述業務用例實現的對象模型,它是對業務角色和業務實體之間應該如何聯系和協作以執行業務的一種抽象。
對于MVC應用程序,領域模型是一個非常重要的部分。在某種行業內,我們根據現實世界的實體、相關的操作和規則來創建模型(Model)。對于C#程序來說,領域模型就是一組封裝現實世界對象的C#類型(類、結構等);領域內對對象的一些操作(或者叫處理),則是定義在C#類型中的方法(Method);而領域內對對象操作的一些規則就是方法內部的邏輯處理,比如C#中的屬性讀寫器的get和set方法對讀寫類成員的控制。舉個例子:
比如銀行這個領域,個人的“銀行帳戶”可以建成一個模型。每個賬戶都有“銀行卡消費”這項操作,即銀行賬戶模型下的一個方法。“不能透支消費”是對這個帳戶使用銀行卡的約束規則,這個規則就是定義在銀行卡消費方法內部的邏輯處理。
上面說的雖然有點抽象,但還是很容易理解的。而我對領域模型的理解只能到這里了,朋友們好好體會吧。總之,在MVC應用程序中,我們要有這樣一個概念:要通過Model操作數據,或添加一項操作,或給某項操作添加、改變一個規則,這些都是在改變應用程序的領域模型。
理解ASP.NET中的MVC
概括的講ASP.NET MVC有如下特點:
在ASP.NET MVC中,控制器通常是繼承System.Web.Mvc.Controller的類。控制器中類的每個公共方法被稱為Action方法。ASP.NET路由系統內部根據請求的URL和路由配置調用對應的Action方法,完成領域模型的操作后,再選擇一個視圖呈現給客戶端。下圖顯示了ASP.NET MVC中Controller、Model和View之間的關系:
另外,ASP.NET MVC框架可以使用任何被.NET支持的數據庫、ORM框架和其他工具。
轉載于:https://www.cnblogs.com/BrokenIce/p/5697966.html
總結
- 上一篇: HTML5 localStorage本地
- 下一篇: 09_Mybatis开发Dao方法——m