什么是MVC?
MVC是軟件工程中的一種軟件架構(gòu)模式悲敷,它把軟件系統(tǒng)分為以下三個基本部分:
M: model 模型
V: view 視圖
C: controller 控制器
為什么要分成MVC砰琢?
它們?nèi)擢毩⒎止さ帜芑ハ鄥f(xié)作。這種分工明確,責任清晰的分工合作方式,便于各個部分的高效運作丛晌。比如修改某個某塊的已有功能或新增功能,卻不會影響其它模塊斗幼;也有利于復雜程序的搭建澎蛛。這大大提高的工作效率。
MVC 3者是如何分工合作的蜕窿?
controller-負責信息溝通谋逻,是model和view的橋梁
它就像指揮官、或者協(xié)調(diào)者桐经,通過向view和model發(fā)出行動指令毁兆,來開展工作。這種指令阴挣,在編程中起了另一個名字气堕,被叫做action。action是一個大家庭畔咧,它下面由很多的成員茎芭,其中最重要的必備成員有7位,分別是 index, show, new, edit, create, update, destroy盒卸。
view-負責顯示數(shù)據(jù)骗爆,即將資料輸出到屏幕上
它就像是前臺的表演者,聽從controller的指揮蔽介,在舞臺上把結(jié)果展現(xiàn)給大家。它通常是接受controller action這個大家庭里index, show, new, edit的指揮調(diào)度。
model-負責數(shù)據(jù)訪問虹蓄、存放讀取資料
它就像編劇犀呼,編制與應用程序的業(yè)務邏輯相關(guān)的數(shù)據(jù)、以及對數(shù)據(jù)的處理方法薇组。它有權(quán)力直接對數(shù)據(jù)庫進行訪問外臂,進行數(shù)據(jù)的寫入或讀取。它會處理controller的要求律胀,重點是create, update, destroy的指揮宋光,并進而和數(shù)據(jù)庫溝通,并將處理結(jié)果回傳或反饋給controller炭菌。
它們?nèi)叩幕雨P(guān)系
model和view之間罪佳,不會直接進行溝通。view單向接受controller的指令黑低。model和controller是雙向互動關(guān)系赘艳。