---恢復內容開始---
前言 第一遍寫的時候筆記本直接白屏了,無奈只能恢復一點點
本人是剛接觸java不久的小白級碼農,但是有着一顆想寫一手漂亮代碼的心。
最近陷入了一個困境,就是發現自己僅僅只有模仿別人的代碼和邏輯來 寫和別人實現的功能很相似的代碼,如果讓自己單獨去開發,腦子里面簡直就跟下班高峰期的南二環一樣。我想很多剛接觸java不久的孩子都有這種感覺。剛好今天在苦悶了很久之后偶爾看到了MVC模式,突然發現以前對MVC邏輯超級混亂的理解逐漸清晰了,所以就來嘗試着從小白的角度來闡述對於MVC模式的理解。非常歡迎各位前來交流並且指正,那樣也會讓我提高地更快。
首先,MVC在我的理解看來 他是一種架構模式,也可以說是一種框架的模式。而並非是一種設計模式,從百度百科找來設計模式的概念
-
設計模式
設計模式(Design pattern)是一套被反復使用、多數人知曉的、經過分類編目的、代碼設計經驗的總結。使用設計模式是為了可重用代碼、讓代碼更容易被他人理解、保證代碼可靠性。 毫無疑問,設計模式於己於他人於系統都是多贏的;設計模式使代碼編制真正工程化;設計模式是
軟件工程的基石脈絡,如同大廈的結構一樣。
那么,從我個人的角度理解,就相當於
蓋一棟樓和
蓋一座房子。
蓋一棟樓和蓋一座房子,他們動工的流程基本都是一樣的:設計師出圖紙、打地基、用磚壘、封樓頂。
但是他們不一樣的地方在於 蓋一棟樓所出的圖紙、所要打的地基的深度等等和蓋一座房子所用的圖紙、所要打的地基的深度都是不一樣的。因此,他們動工的這些流程就可以看作是
設計模式的一種,而他們實際蓋的時候所需要的架構就類似於
MVC框架模式。
MVC模式的概念
1、Model(業務模型):應用程序中用於處理應用程序數據邏輯的部分,通常模型對象負責在數據庫中存取數據。
說白了就是確定要打的地基等一系列信息的。
2、view(視圖):應用程序中處理數據顯示的部分。通常視圖是依據模型數據創建的。
其實就是反映了蓋出來的到底是樓還是房。
3、controller(控制器):應用程序中處理用戶交互的部分。
通常控制器負責從視圖讀取數據,控制用戶輸入,並向模型發送數據。
其實就是決定收集到到底是開發商要來蓋樓盤還是個體戶要來蓋房子。
下面就是我曾看到過的一個MVC模型的圖:
從圖中可以看出,控制器獲取到了用戶的請求 然后不做任何處理就轉發給了模型,模型通過自己的業務邏輯判斷,以及對數據庫中數據的操作,找到了滿足控制器所轉發過來的用戶請求,假設模型所要提交給視圖的請求都和視圖有一個虛擬的鏈接地址,那么每次在模型確定好要傳送的已經處理好的用戶請求的時候,視圖就會對模型的這一請求做出回應,便會將不同的頁面展示給用戶,然后根據用戶的進一步要求繼續重復之前的流程。
從個人角度,用大白話來說就是:模型=建築公司的施工部門;控制器=建築公司的銷售部門;視圖=建築公司的設計部門;
在銷售部門成功拉到用戶的時候,他會將用戶的需求直接交給施工部門,其中需求就包括到底誰要做什么;施工部門在得到銷售部門從用戶那里得到的請求之后,就會用用戶的請求和自己所能承接的項目做對比呀,比如 一個房地產開發商要蓋一座別墅,那么施工部門就會判斷自己會不會改別墅嘍;在施工部門確定好是否能滿足用戶的需求之后就會把這個決定告訴設計部門,那么就會讓設計部門負責把他們所能做的圖紙反饋給用戶,當然,如果不能做,那就會反饋給用戶一張白紙加許多句解釋的話唄。如果用戶滿意了,那么就直接進行這個項目,如果用戶覺得圖紙上哪個地方有問題,那么久繼續重復之前的操作。
以上大概就是我所理解的MVC框架模式,如果有不准確的地方請大家批評指正,謝謝!
---恢復內容結束---
