一位仁兄對MVC設計模式的理解,搞笑

【前言】找到個很逗的帖子,呵呵,唯一不好就是不分段落。。看的累哈

 

【原文】http://hi.baidu.com/jiemushe1814/blog/item/c08be73752e0443c0a55a9ca.html

 

可能剛接觸面向對象(OOP)編程的兄弟對MVC模型一直是那種可遇而不可求的心態,當聽老鳥們在那滿天吐沫星子的談論MVC模型的這個好那個好,自己只有瞪着倆眼珠子在那傻傻的聽着,或許聽完了還不知道是怎麼回事,下面就小弟的一些拙見來幫助這些兄弟們理解一下到底MVC是咋回事。。。那到底啥是MVC設計模式呢?

 

MVC (Model-View-Controller)模式,即模型-試圖-控制器模式,其核心思想是將整個程序代碼分成相對獨立而又能協同工作的3個組成部分,具體的功能如下:

 

模型(Model): 業務邏輯層,實現具體的業務邏輯、狀態管理的功能。

 

視圖(View):表示層,就是與用戶實現交互的頁面,通常實現數據的輸入和輸出功能。

 

控制器(Controller):控制層。起到控制整個業務流程的作用,實現View層跟Model層的協同工作。

 

看到這兒,可能有些兄弟已經皺眉頭了,心裏在不住地說“操,你整這玩應也太抽象了,要是能看懂你這個,那書上寫的我也能看懂了,你要是想玩死我,你Y就早說!!~~”,嘿嘿,彆着急,下面我就舉個實際的例子來幫助大家繼續理解。

 

這個MVC設計模式呢,有點像現實中我們去飯店吃飯的過程。當你到一個飯店吃飯,過程是這樣的,首先你得點菜啊,不用喊,一個光溜水滑,埋了八汰的小服務員就會整個小本來你面前,“先生,你來點啥?”,你看看菜譜,“給我整個小盤魚香肉絲,再加一碗米飯。”“好的,先生稍等。”說着服務員一溜小跑朝後廚方向,“那啥。。。告訴廚師別放姜啊!~~”。。。帶會兒,服務員就把你要的飯菜給你端上來了,“先生請慢用~~有啥需要幫忙的,儘管喊我。”你吃的狼吞虎嚥的,根本不知道里面放的青椒媽的都沒洗~~~ 就這麼一個簡單的你要飯的過程就可以用MVC將其描述一下,你呢就相當於View,服務員呢就相當於Controller,而那個不洗青椒的該死廚師就是Model。你一開始跟服務員點菜,就相當於我們的瀏覽器向服務器發出請求,服務員將你要吃的菜交給後廚的師傅,就相當於控制層將瀏覽器發過來的請求交給業務邏輯層來處理,而它根本不管廚師到底咋做這個菜,反正你能給我鼓搗出一盤魚香肉絲就成,青椒洗不洗那是他的事,這也就是我們常從老鳥口中聽到的“封裝”,封裝好啊,封的你連青椒沒洗的魚香肉絲都能吃的噴香,嘻嘻~~當服務員把一盤冒着熱氣的魚香肉絲端到你面前的過程,就相當於業務邏輯層處理完後把相應傳回給瀏覽器,然後通過瀏覽器顯示給用戶。這樣就實現了一個簡單的MVC協調交互,也不知道你明白點沒有。。。可能有的兄弟又要說了,“你講MVC你就講唄,整啥點菜啊,我昨天才吃的魚香肉絲,現在都有點想吐啦!!討厭~~~”,下面就給兄弟們說說在實際項目中應該咋應用這MVC。

 

就拿一個簡單的登陸模塊說,需求是你輸入一個用戶名、密碼,如果輸入的跟預先定義好的一樣,那麼就進入到正確頁面,如果不一樣,就提示個錯誤信息“你Y別在這兒蒙我,輸入的不對!”。這個小小的模塊中,起始的輸入用戶名密碼的頁面跟經過校驗後顯示的頁面就相當於View,而這裏還需要一個controller頁面,就是用於接收輸入進來的用戶名 密碼,還有經過校驗後返回的一個flg(此flg就是用於判斷你輸入的是否正確,而跳轉到相應的頁面的),最後還缺一個Model,那麼就是你那個用於校驗的類了,他就是處理你輸入的是否跟預先訂好的一樣不一樣的,之後返回一個flg。這樣就完全實現了邏輯跟頁面的分離,我頁面不管你咋整,反正我就一個顯示,而controller呢也不管你Model咋判斷對不對,反正我給你了用戶名跟密碼,你就得給我整回來一個flg來,就跟服務員根本不管廚師青椒洗不洗一樣,而Medol呢,則是反正你敢給我個用戶名跟密碼,我就給你整過去個flg~~如果看到這你有點茅塞頓開了,待會就試驗着寫寫吧!!

 

以上就是小弟的一些不成熟的理解,也是小弟對MVC設計模式理解的一些心得吧,可能有些地方不夠準確,也歡迎老鳥們批評指正,衷心的希望這篇小文兒能對剛剛接觸MVC兄弟有所幫助!!注:這裏沒有提到到底是用java還是php,也沒有實際的代碼例子,我想只要真正理解了這個過程,代碼上應該不成問題地~~

 

來源: 站長吧 -

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章