深入理解MVC

首先我們來看看MVC架構(gòu)的示意圖:

和訪問者交互的是控制層(Controller層),控制器(controller)是同類交互的集合,每一個交互的操作,都對應(yīng)了一個動作(action)。在Thinkphp框架中,全部的控制器類都必須繼承于Action。

對數(shù)據(jù)庫進(jìn)行存取的是模型層(Model層),在Thinkphp框架中,全部的模型器類都必須繼承于Model。

顯示頁面模板的是視圖層(View層)。

上面簡單描述了MVC架構(gòu)的理解。

MVC理念是將網(wǎng)絡(luò)系統(tǒng)劃分為三個關(guān)注點(diǎn):交互、數(shù)據(jù)、頁面模板;也就是我們設(shè)計或分析一個網(wǎng)絡(luò)系統(tǒng),就可以從這三個角度去進(jìn)行:

交互:

表現(xiàn)在系統(tǒng)提供了哪些功能,這些功能可以劃分為哪些大類,每一個大類的功能分別都有些什么操作等等。

比如PHP論壇系統(tǒng),我們可以粗略劃分成板塊、帖子、用戶、站內(nèi)信息、后臺管理等幾大類的功能,然后用戶的功能里面又包括了注冊、登錄、修改用戶信息等等的多個操作。

對應(yīng)Thinkphp框架的控制層(controller層)而言,一個功能大類可以說是一個控制器類(當(dāng)然,如果該類型概況的范圍比較大,那么還需要繼續(xù)拆分成多個控制器類),單個類型內(nèi)的每一個功能就是一個動作(action,控制器類的方法函數(shù))。

數(shù)據(jù):

表現(xiàn)在系統(tǒng)對數(shù)據(jù)庫進(jìn)行了那些操作。網(wǎng)絡(luò)系統(tǒng)幾乎都需要和數(shù)據(jù)庫打交道。那么,在進(jìn)行對交互的分析和對系統(tǒng)本身的分析后,我們也大致上可以歸納系統(tǒng)需要哪些數(shù)據(jù)了。然后我們將這些數(shù)據(jù)整理歸類,最終可以得出系統(tǒng)需要的數(shù)據(jù)表是哪些。

就剛才的PHP論壇,按照“板塊、帖子、用戶、站內(nèi)信息、后臺管理”這五個分類功能,我們可以基本歸納出它們需要:板塊記錄表、帖子記錄表、用戶表、站內(nèi)信息表、后臺設(shè)置表等等。

對模型層(Model層)而言,一個表可以說就是對應(yīng)了一個模型類。而模型父類(Model)為這些模型類提供大部分與數(shù)據(jù)庫存取的功能。

頁面模板:

每一個網(wǎng)絡(luò)系統(tǒng)的開發(fā)中,我們都將需要制作相當(dāng)數(shù)量的頁面。簡單來說,控制器的每一個動作(action)都有可能產(chǎn)生一個頁面,所以在理清所有交互,完成控制器的設(shè)計后(未寫代碼前),我們就可以得到需要的頁面模板的清單了。然后在模板引擎的幫助下,頁面模板的制作可以與控制器的開發(fā)同時進(jìn)行,以提高開發(fā)效率。

按照上面的PHP論壇交互的設(shè)計,那么我們可以得到的頁面模板有許多,比如板塊方面,有首頁模板、分區(qū)模板、板塊模板等;帖子方面有帖子內(nèi)容模板、發(fā)帖模板、回帖模板等。

根據(jù)“交互、數(shù)據(jù)、頁面模板”這三個關(guān)注點(diǎn),那么我們就可以比較全面地去分析和設(shè)計一個網(wǎng)絡(luò)系統(tǒng)了。請注意這三個關(guān)注點(diǎn)并非孤立的,而“交互”正是“數(shù)據(jù)”與“頁面模板”的基礎(chǔ),所以對“交互”的分析務(wù)必要做到正確并且完善。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 首先我們來看看MVC架構(gòu)的示意圖: 和訪問者交互的是控制層(Controller層),控制器(controller...
    美虎轆轆閱讀 434評論 0 0
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,094評論 25 709
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,578評論 19 139
  • 《如何改變習(xí)慣》。 作者斯科特·揚(yáng)。人常說:江山易改本性難移。說得就是一個習(xí)慣一旦形成,如果不經(jīng)歷一番挫骨揚(yáng)灰的痛...
    仲夏夜之夢123閱讀 190評論 0 0
  • 昨天晚上,我終于看到了5個月前就心心念念“想看”的電影——《摔跤吧,爸爸》。 看完后心緒還久久不能平靜。它是我近期...
    洛洛莉ya閱讀 2,257評論 8 21

友情鏈接更多精彩內(nèi)容