日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

理解MVC模式

發(fā)布時間:2025/7/14 c/c++ 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 理解MVC模式 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

理解一般意義上的MVC模式

MVC模式(Model-View-Controller)是軟件工程中的一種軟件架構(gòu)模式,把軟件系統(tǒng)分為以下三個基本部分:

  • 模型(Model):模型用于封裝與應(yīng)用程序的業(yè)務(wù)邏輯相關(guān)的數(shù)據(jù)以及對數(shù)據(jù)的處理方法?!澳P汀庇袑?shù)據(jù)直接訪問的權(quán)力,例如對數(shù)據(jù)庫的訪問。“模型”不依賴“視圖”和“控制器”,也就是說,模型不關(guān)心它會被如何顯示或是如何被操作。
  • 視圖(View):視圖能夠?qū)崿F(xiàn)數(shù)據(jù)有目的的顯示。在視圖中一般沒有程序上的邏輯。
  • 控制器(Controller)?:控制器起到不同層面間的組織作用,用于控制應(yīng)用程序的流程。它處理事件并作出響應(yīng)?!笆录卑ㄓ脩舻男袨楹蛿?shù)據(jù)模型上的改變。

上面的定文來自維基百科。根據(jù)上面的定文和我個人的理解,我畫了下面這樣一張表示MVC各部分關(guān)系的圖:

  

注意,不同的平臺和不同的語言框架對MVC的定義各有不同,并沒有一個明確的定義。但大體上,MVC模式中的每個部分是分工明確、界定清晰的。操作數(shù)據(jù)的邏輯只存在于模型中,呈現(xiàn)數(shù)據(jù)的邏輯只存在于視圖中,處理用戶的請求和輸入只存在于控制器中。不管應(yīng)用程序有多大、處于哪段生命周期,這種清晰的關(guān)注點分離(separation of concerns)的MVC模式讓我們的應(yīng)用程序更容易維護和擴展。

理解領(lǐng)域模型

領(lǐng)域模型(Domain Model)?是對領(lǐng)域內(nèi)的概念類或現(xiàn)實世界中對象的可視化表示。又稱概念模型、領(lǐng)域?qū)ο竽P?、業(yè)務(wù)對象模型。它專注于分析問題領(lǐng)域本身,發(fā)掘重要的業(yè)務(wù)領(lǐng)域概念,并建立業(yè)務(wù)領(lǐng)域概念之間的關(guān)系。 領(lǐng)域模型是描述業(yè)務(wù)用例實現(xiàn)的對象模型,它是對業(yè)務(wù)角色和業(yè)務(wù)實體之間應(yīng)該如何聯(lián)系和協(xié)作以執(zhí)行業(yè)務(wù)的一種抽象。

對于MVC應(yīng)用程序,領(lǐng)域模型是一個非常重要的部分。在某種行業(yè)內(nèi),我們根據(jù)現(xiàn)實世界的實體、相關(guān)的操作和規(guī)則來創(chuàng)建模型(Model)。對于C#程序來說,領(lǐng)域模型就是一組封裝現(xiàn)實世界對象的C#類型(類、結(jié)構(gòu)等);領(lǐng)域內(nèi)對對象的一些操作(或者叫處理),則是定義在C#類型中的方法(Method);而領(lǐng)域內(nèi)對對象操作的一些規(guī)則就是方法內(nèi)部的邏輯處理,比如C#中的屬性讀寫器的get和set方法對讀寫類成員的控制。舉個例子:
比如銀行這個領(lǐng)域,個人的“銀行帳戶”可以建成一個模型。每個賬戶都有“銀行卡消費”這項操作,即銀行賬戶模型下的一個方法。“不能透支消費”是對這個帳戶使用銀行卡的約束規(guī)則,這個規(guī)則就是定義在銀行卡消費方法內(nèi)部的邏輯處理。

上面說的雖然有點抽象,但還是很容易理解的。而我對領(lǐng)域模型的理解只能到這里了,朋友們好好體會吧??傊?#xff0c;在MVC應(yīng)用程序中,我們要有這樣一個概念:要通過Model操作數(shù)據(jù),或添加一項操作,或給某項操作添加、改變一個規(guī)則,這些都是在改變應(yīng)用程序的領(lǐng)域模型。

理解ASP.NET中的MVC

概括的講ASP.NET MVC有如下特點:

  • 通過把項目分成model view和controller,這種任務(wù)分離(亦稱關(guān)注點分離),使得復(fù)雜項目更加容易維護,另外測試驅(qū)動組件使得應(yīng)用程序也更加容易測試。
  • 可擴展的簡便的框架。mvc框架被設(shè)計用來更輕松的移植和定制功能。你可以加入自己的視圖引擎,url重寫策略,重載action方法等。mvc也支持Dependency Injection (DI) 和 Inversion of Control (IOC)。強大的url重寫機制讓你更方便的建立容易理解和可搜索的url。url可以不包含任何文件擴展名,并且可以重寫url使其對搜索引擎更加友好。
  • 對現(xiàn)有的asp.net程序的支持,可以使用asp.net現(xiàn)有的頁面標記、用戶控件、模板頁、數(shù)據(jù)綁定等等。
  • ……
  • 在ASP.NET MVC中,控制器通常是繼承System.Web.Mvc.Controller的類??刂破髦蓄惖拿總€公共方法被稱為Action方法。ASP.NET路由系統(tǒng)內(nèi)部根據(jù)請求的URL和路由配置調(diào)用對應(yīng)的Action方法,完成領(lǐng)域模型的操作后,再選擇一個視圖呈現(xiàn)給客戶端。下圖顯示了ASP.NET MVC中Controller、Model和View之間的關(guān)系:

    另外,ASP.NET MVC框架可以使用任何被.NET支持的數(shù)據(jù)庫、ORM框架和其他工具。

    轉(zhuǎn)載于:https://www.cnblogs.com/BrokenIce/p/5697966.html

    總結(jié)

    以上是生活随笔為你收集整理的理解MVC模式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。