首先我們來(lái)看看MVC架構(gòu)的示意圖:
和訪問(wèn)者交互的是控制層(Controller層)审磁,控制器(controller)是同類交互的集合偷办,每一個(gè)交互的操作兼吓,都對(duì)應(yīng)了一個(gè)動(dòng)作(action)烦绳。在Thinkphp框架中卿捎,全部的控制器類都必須繼承于Action。
對(duì)數(shù)據(jù)庫(kù)進(jìn)行存取的是模型層(Model層)径密,在Thinkphp框架中午阵,全部的模型器類都必須繼承于Model。
顯示頁(yè)面模板的是視圖層(View層)享扔。
上面簡(jiǎn)單描述了MVC架構(gòu)的理解底桂。
MVC理念是將網(wǎng)絡(luò)系統(tǒng)劃分為三個(gè)關(guān)注點(diǎn):交互、數(shù)據(jù)惧眠、頁(yè)面模板籽懦;也就是我們?cè)O(shè)計(jì)或分析一個(gè)網(wǎng)絡(luò)系統(tǒng),就可以從這三個(gè)角度去進(jìn)行:
交互:
表現(xiàn)在系統(tǒng)提供了哪些功能氛魁,這些功能可以劃分為哪些大類暮顺,每一個(gè)大類的功能分別都有些什么操作等等。
比如PHP論壇系統(tǒng)呆盖,我們可以粗略劃分成板塊拖云、帖子贷笛、用戶应又、站內(nèi)信息、后臺(tái)管理等幾大類的功能乏苦,然后用戶的功能里面又包括了注冊(cè)株扛、登錄尤筐、修改用戶信息等等的多個(gè)操作。
對(duì)應(yīng)Thinkphp框架的控制層(controller層)而言洞就,一個(gè)功能大類可以說(shuō)是一個(gè)控制器類(當(dāng)然盆繁,如果該類型概況的范圍比較大,那么還需要繼續(xù)拆分成多個(gè)控制器類)旬蟋,單個(gè)類型內(nèi)的每一個(gè)功能就是一個(gè)動(dòng)作(action油昂,控制器類的方法函數(shù))。
數(shù)據(jù):
表現(xiàn)在系統(tǒng)對(duì)數(shù)據(jù)庫(kù)進(jìn)行了那些操作倾贰。網(wǎng)絡(luò)系統(tǒng)幾乎都需要和數(shù)據(jù)庫(kù)打交道冕碟。那么,在進(jìn)行對(duì)交互的分析和對(duì)系統(tǒng)本身的分析后匆浙,我們也大致上可以歸納系統(tǒng)需要哪些數(shù)據(jù)了安寺。然后我們將這些數(shù)據(jù)整理歸類,最終可以得出系統(tǒng)需要的數(shù)據(jù)表是哪些首尼。
就剛才的PHP論壇挑庶,按照“板塊、帖子软能、用戶迎捺、站內(nèi)信息、后臺(tái)管理”這五個(gè)分類功能埋嵌,我們可以基本歸納出它們需要:板塊記錄表破加、帖子記錄表、用戶表雹嗦、站內(nèi)信息表范舀、后臺(tái)設(shè)置表等等。
對(duì)模型層(Model層)而言了罪,一個(gè)表可以說(shuō)就是對(duì)應(yīng)了一個(gè)模型類锭环。而模型父類(Model)為這些模型類提供大部分與數(shù)據(jù)庫(kù)存取的功能。
頁(yè)面模板:
每一個(gè)網(wǎng)絡(luò)系統(tǒng)的開(kāi)發(fā)中泊藕,我們都將需要制作相當(dāng)數(shù)量的頁(yè)面辅辩。簡(jiǎn)單來(lái)說(shuō),控制器的每一個(gè)動(dòng)作(action)都有可能產(chǎn)生一個(gè)頁(yè)面娃圆,所以在理清所有交互玫锋,完成控制器的設(shè)計(jì)后(未寫(xiě)代碼前),我們就可以得到需要的頁(yè)面模板的清單了讼呢。然后在模板引擎的幫助下撩鹿,頁(yè)面模板的制作可以與控制器的開(kāi)發(fā)同時(shí)進(jìn)行,以提高開(kāi)發(fā)效率悦屏。
按照上面的PHP論壇交互的設(shè)計(jì)节沦,那么我們可以得到的頁(yè)面模板有許多键思,比如板塊方面,有首頁(yè)模板甫贯、分區(qū)模板吼鳞、板塊模板等;帖子方面有帖子內(nèi)容模板叫搁、發(fā)帖模板赔桌、回帖模板等。
根據(jù)“交互渴逻、數(shù)據(jù)纬乍、頁(yè)面模板”這三個(gè)關(guān)注點(diǎn),那么我們就可以比較全面地去分析和設(shè)計(jì)一個(gè)網(wǎng)絡(luò)系統(tǒng)了裸卫。請(qǐng)注意這三個(gè)關(guān)注點(diǎn)并非孤立的仿贬,而“交互”正是“數(shù)據(jù)”與“頁(yè)面模板”的基礎(chǔ),所以對(duì)“交互”的分析務(wù)必要做到正確并且完善墓贿。
作權(quán)歸作者所有茧泪。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處聋袋《游埃互聯(lián)網(wǎng)+時(shí)代,時(shí)刻要保持學(xué)習(xí)幽勒,攜手千鋒PHP,DreamIt Possible嗜侮。