MVC(模型 - 視圖 - 控制器)設(shè)計(jì)模式實(shí)際上已經(jīng)存在了幾十年,并且已經(jīng)用于許多不同的技術(shù)。 從Smalltalk到C++到Java的一切,現(xiàn)在C#和.NET使用這種設(shè)計(jì)模式來構(gòu)建用戶界面。
以下是MVC模式的一些顯著特點(diǎn) -
最初它在1979年被命名為:Thing-Model-View-Editor
,然后它被簡(jiǎn)化為:Model-View-Controller
。
這是一種分離應(yīng)用程序中的問題(例如,將數(shù)據(jù)訪問邏輯與顯示邏輯分離)的強(qiáng)大而優(yōu)雅的手段,并且非常適合于Web應(yīng)用程序。
其明確的關(guān)注點(diǎn)分離確實(shí)為應(yīng)用程序的設(shè)計(jì)增添了一點(diǎn)額外的復(fù)雜性,但非凡的好處超過了額外的工作量。
MVC體系結(jié)構(gòu)模式將應(yīng)用程序的用戶界面(UI)分為三個(gè)主要部分。
MVC背后的想法是:將擁有一個(gè)名為視圖(View)的組件,該組件負(fù)責(zé)呈現(xiàn)用戶界面,不管它是HTML還是桌面應(yīng)用程序上的UI小部件。
該視圖與模型交互通信,該模型包含視圖需要顯示的所有數(shù)據(jù)。視圖通常就沒有太多的邏輯。
在一個(gè)Web應(yīng)用程序中,視圖可能根本沒有任何關(guān)聯(lián)的代碼。 它可能只是HTML,然后是從模型中獲取數(shù)據(jù)片段的表達(dá)式,并將它們插入到視圖中的正確位置來構(gòu)建HTML模板并顯示給用戶。
組織的控制器就是一切。 當(dāng)一個(gè)HTTP請(qǐng)求到達(dá)MVC應(yīng)用程序時(shí),該請(qǐng)求被路由到一個(gè)控制器,然后由控制器來與數(shù)據(jù)庫,文件系統(tǒng)或模型進(jìn)行通信。