MVC設(shè)計(jì)模式的理解 MVC是一種設(shè)計(jì)模式(Design pattern),也就是一種解決問題的思路和方法;
MVC是模型(Model), 視圖(View), 控制器(Controller) 3個(gè)單詞的縮寫,幾乎所有的web框架都是建立在MVC模式上 。
模型(Model) 指數(shù)據(jù)模型,主要是數(shù)據(jù)、業(yè)務(wù)邏輯和業(yè)務(wù)規(guī)則;開發(fā)初期最重要的任務(wù),該部分的代碼寫的好,后面就可改的少,開發(fā)快速 。
以下是Model的幾個(gè)原則:
1. 數(shù)據(jù)、行為、方法是Model的主要內(nèi)容;視圖(View) 指視圖,就是呈現(xiàn)給用戶一個(gè)界面,是Model的表現(xiàn)形式,也是手機(jī)用戶輸入的地方;
2. 實(shí)際工作中,Model是代碼量最大、最復(fù)雜的地方,大量的業(yè)務(wù)邏輯都在這里表示
3. Model提供的數(shù)據(jù)都是原始數(shù)據(jù),也就是說不帶任何表現(xiàn)層的代碼,比如在輸出的數(shù)據(jù)中添加html標(biāo)簽,這是view層的工作;但是Model是可以提供有結(jié)構(gòu)的數(shù)據(jù)的:數(shù)組結(jié)構(gòu)、隊(duì)列結(jié)構(gòu)、甚至其他的Model,這個(gè)不是表現(xiàn)層的格式,而是內(nèi)存中的表現(xiàn)
4. 與輸出不同的是,輸入是可以帶有表現(xiàn)層格式的數(shù)據(jù),比如文章的內(nèi)容里可能帶有html標(biāo)簽,Model一般都會(huì)這些輸入數(shù)據(jù)進(jìn)行過濾、驗(yàn)證、規(guī)范化等預(yù)處理 。
5. 注意與Controller分開,Model是處理業(yè)務(wù)方面的邏輯,Controller只是簡(jiǎn)單的協(xié)調(diào)Model和View之間的關(guān)系;只要是與業(yè)務(wù)有關(guān)的,就該放在Model里面 。好的設(shè)計(jì),應(yīng)當(dāng)是胖Model,瘦Controller 。
View主要負(fù)責(zé)顯示,一切跟顯示界面無關(guān)的東西,都不應(yīng)該出現(xiàn)在這里,因此View里一般不會(huì)出現(xiàn)復(fù)雜的判斷句、復(fù)雜的運(yùn)算過程 。
關(guān)于View的幾個(gè)原則:
1. 負(fù)責(zé)頁(yè)面顯示,以html為主控制器(Controller) 指控制器,主要用來相應(yīng)用戶請(qǐng)求,決定使用什么師徒,用什么數(shù)據(jù)來顯示 。
2. 一般沒有復(fù)雜的判斷句、復(fù)雜的運(yùn)算過程,可以有簡(jiǎn)單的循環(huán)語句、格式化語句 。
3. 從不調(diào)用Model的寫方法,也是就是只會(huì)從Model內(nèi)取數(shù)據(jù),不會(huì)直接修改Model
4. 一般沒有準(zhǔn)備數(shù)據(jù)的代碼,如查詢數(shù)據(jù)庫(kù),組合成一定格式等,這些都是放在Controller里面,然后分配給View;
也就是說View用到的數(shù)據(jù),都是可以直接用的變量 。
Controller的幾個(gè)原則:
1. 處理用戶請(qǐng)求,因此,對(duì)于reqeust的訪問代碼應(yīng)該放在Controller里面,比如 $_GET $_POST 等 。但僅限于獲取用戶請(qǐng)求數(shù)據(jù),不應(yīng)該對(duì)數(shù)據(jù)有任何操作或預(yù)處理,這些工作應(yīng)該交由Models來完成 。
2. 調(diào)用Models的讀方法,獲取數(shù)據(jù),直接傳遞給視圖,供顯示 。當(dāng)涉及到多個(gè)Model時(shí),有關(guān)的邏輯應(yīng)當(dāng)交給Model來完成 。
【javaweb實(shí)現(xiàn)注冊(cè)功能 簡(jiǎn)述什么是mvc模式】3. 調(diào)用Models的類方法,對(duì)Models進(jìn)行寫操作 。猜你喜歡
- 布拖鞋注冊(cè)商標(biāo)屬于哪一類? 布拖鞋注冊(cè)商標(biāo)編號(hào)
- 華為注冊(cè)的商標(biāo)因與安德瑪近似被部分駁回,你如何看待此事?
- 注冊(cè)巖土工程師的合格標(biāo)準(zhǔn) 進(jìn)來看看
- 怎么注冊(cè)HOTMAIL
- 西安注冊(cè)會(huì)計(jì)師考場(chǎng)有哪幾個(gè)
- 企業(yè)注冊(cè)號(hào)是什么 關(guān)于企業(yè)注冊(cè)號(hào)的介紹
- 你好我想要博大考神9.0的注冊(cè)碼
- 一個(gè)手機(jī)號(hào)可以注冊(cè)幾個(gè)閑魚
- 誰都可以考注冊(cè)會(huì)計(jì)師嗎?
- 怎樣注冊(cè)人人網(wǎng)?
