五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

產(chǎn)品經(jīng)理技術(shù)腦:MVC

2022-09-20 14:35 作者:陪學(xué)產(chǎn)品經(jīng)理  | 我要投稿

設(shè)計一個程序的結(jié)構(gòu),是一門專門的學(xué)問,叫做"架構(gòu)模式"(architectural pattern),屬于編程的方法論。

MVC模式就是架構(gòu)模式的一種。



MVC是三個單詞的首字母縮寫,它們是Model(模型)、View(視圖)和Controller(控制)。這個模式認(rèn)為,程序不論簡單或復(fù)雜,從結(jié)構(gòu)上看,都可以分成三層。

  • V即View視圖是指用戶看到并與之交互的界面。比如由html元素組成的網(wǎng)頁界面,或者軟件的客戶端界面。MVC的好處之一在于它能為應(yīng)用程序處理很多不同的視圖。在視圖中其實沒有真正的處理發(fā)生,它只是作為一種輸出數(shù)據(jù)并允許用戶操縱的方式。

  • M即model模型是指模型表示業(yè)務(wù)規(guī)則。在MVC的三個部件中,模型擁有最多的處理任務(wù)。被模型返回的數(shù)據(jù)是中立的,模型與數(shù)據(jù)格式無關(guān),這樣一個模型能為多個視圖提供數(shù)據(jù),由于應(yīng)用于模型的代碼只需寫一次就可以被多個視圖重用,所以減少了代碼的重復(fù)性。

  • C即controller控制器是指控制器接受用戶的輸入并調(diào)用模型和視圖去完成用戶的需求,控制器本身不輸出任何東西和做任何處理。它只是接收請求并決定調(diào)用哪個模型構(gòu)件去處理請求,然后再確定用哪個視圖來顯示返回的數(shù)據(jù)。

這三層是緊密聯(lián)系在一起的,但又是互相獨立的,每一層內(nèi)部的變化不影響其他層。

每一層都對外提供接口(Interface),供上面一層調(diào)用。這樣一來,軟件就可以實現(xiàn)模塊化,修改外觀或者變更數(shù)據(jù)都不用修改其他層,大大方便了維護和升級。


|三者之間的調(diào)用關(guān)系



1.用戶首先在界面中進行人機交互,然后請求發(fā)送到控制器,

2.控制器根據(jù)請求類型和請求的指令發(fā)送到相應(yīng)的模型,模型可以與數(shù)據(jù)庫進行交互,進行增刪改查操作,

3.完成之后,根據(jù)業(yè)務(wù)的邏輯選擇相應(yīng)的視圖進行顯示,此時用戶獲得此次交互的反饋信息,

4.用戶可以進行下一步交互,如此循環(huán)。


?|用登陸案例看MVC框架如何完成產(chǎn)品任務(wù)


1.用戶首先在Login.html中輸入用戶名和密碼,點擊登陸,

2.此時框架根據(jù)action的路徑,在struts.xml中找到對應(yīng)的Login,然后根據(jù)對應(yīng)的class的路徑進入相應(yīng)的login.Java,在這里判斷之后,返回success或error,

3.然后根據(jù)struts.xml中的result值,指向相應(yīng)的jsp頁面。

?


圖中,用戶請求首先到達(dá)前端控制器FilterDispatcher。

FilterDispatcher負(fù)責(zé)根據(jù)用戶提交的URL和struts.xml中的配置,來選擇合適的動作(Action),讓這個Action來處理用戶的請求。


|MVC是一種思維框架


如果將MVC模式解釋成"外觀"、"機制"和"功能/數(shù)據(jù)"這三層結(jié)構(gòu),那么很多組織機構(gòu)也可以通過MVC模式來建構(gòu)框架。比如一家商場,完全可以分成三部分:

  • 一部分是倉庫,負(fù)責(zé)提供商品,這是"功能層"(或者"數(shù)據(jù)層");

  • 另一部分是零售鋪面,負(fù)責(zé)銷售商品,這是它的"外觀層";

  • 兩者之間就是"機制層",包括柜臺和倉庫之間一切互動的機制。

這樣區(qū)分以后,這個商場的結(jié)構(gòu)就變得非常清楚,可以針對不同的層進行優(yōu)化,提高效率。

產(chǎn)品經(jīng)理技術(shù)腦:MVC的評論 (共 條)

分享到微博請遵守國家法律
荔波县| 集贤县| 金平| 宝应县| 白银市| 兰坪| 丽水市| 菏泽市| 丹棱县| 嘉黎县| 布拖县| 合山市| 北碚区| 娄底市| 郑州市| 丽水市| 砚山县| 龙川县| 龙口市| 锦州市| 伊宁县| 东安县| 洞头县| 临漳县| 天水市| 塔河县| 清水县| 北宁市| 华安县| 吉木萨尔县| 呼和浩特市| 长武县| 泌阳县| 星座| 陆丰市| 平山县| 沂南县| 合阳县| 方正县| 万盛区| 湟中县|