【設(shè)計(jì)模式】之MVC設(shè)計(jì)模式


作者:xcbeyond
瘋狂源自夢(mèng)想,技術(shù)成就輝煌!微信公眾號(hào):《程序猿技術(shù)大咖》號(hào)主,專注后端開發(fā)多年,擁有豐富的研發(fā)經(jīng)驗(yàn),樂(lè)于技術(shù)輸出、分享,現(xiàn)階段從事微服務(wù)架構(gòu)項(xiàng)目的研發(fā)工作,涉及架構(gòu)設(shè)計(jì)、技術(shù)選型、業(yè)務(wù)研發(fā)等工作。對(duì)于Java、微服務(wù)、數(shù)據(jù)庫(kù)、Docker有深入了解,并有大量的調(diào)優(yōu)經(jīng)驗(yàn)。 






  

【設(shè)計(jì)模式】之MVC設(shè)計(jì)模式
MVC是把一個(gè)項(xiàng)目按照模型(Model)、視圖(View)、控制(Controller)分為三層,使得項(xiàng)目易于維護(hù)、擴(kuò)展。

1、MVC包括3種對(duì)象:
①、模型(Model)對(duì)象:是應(yīng)用程序的主體部分,主要是進(jìn)行數(shù)據(jù)和業(yè)務(wù)規(guī)則的處理。

②、視圖(View)對(duì)象:是應(yīng)用程序中負(fù)責(zé)生成用戶界面的部分,如:"在線考試評(píng)測(cè)系統(tǒng)"項(xiàng)目中的三個(gè)界面部分(LoginFrame、MenuFrame、ExamFrame)。

③、控制器(Control)對(duì)象:是根據(jù)用戶的輸入,控制用戶界面數(shù)據(jù)顯示及更新Model對(duì)象狀態(tài)的部分。

2、MVC模式結(jié)構(gòu):
在這里插入圖片描述



3、MVC處理的過(guò)程:
在這里插入圖片描述
























   如圖所示,首先控制器接收用戶的請(qǐng)求,并決定應(yīng)該調(diào)用哪個(gè)模型來(lái)進(jìn)行處理,然后模型用業(yè)務(wù)邏輯來(lái)處理用戶的請(qǐng)求并返回?cái)?shù)據(jù),最后控制器用相應(yīng)的視圖格式化模型返回的數(shù)據(jù),并通過(guò)表現(xiàn)呈現(xiàn)給用戶。
  • 1

4、應(yīng)用

  談到設(shè)計(jì)模式,最好應(yīng)用方式就是把它應(yīng)用在實(shí)際的項(xiàng)目中去,只有在實(shí)際的項(xiàng)目中,你才會(huì)感覺(jué)到它好處。針對(duì)MVC這個(gè)設(shè)計(jì)模式而言,它一般應(yīng)用在一些稍微大的項(xiàng)目中,才會(huì)體現(xiàn)出它的價(jià)值之處了。正如《MVC已過(guò)時(shí),MOVE時(shí)代來(lái)臨?》一文中所提及的一樣,MVC并不適合小型甚至中等規(guī)模的應(yīng)用程序,花費(fèi)大量時(shí)間將MVC應(yīng)用到規(guī)模并不是很大的應(yīng)用程序通常會(huì)得不償失。