2023-11-13 分類: 網(wǎng)站建設(shè)
MVC 是一種使用 MVC(View -View-)設(shè)計來創(chuàng)建 Web 應(yīng)用程序的模式:
(模型)代表應(yīng)用程序的核心(如數(shù)據(jù)庫記錄列表)。
查看顯示數(shù)據(jù)(數(shù)據(jù)庫記錄)。
(控制器)處理輸入(寫入數(shù)據(jù)庫記錄)。
MVC 模型還提供對 HTML、CSS 和 HTML 的完全控制。
(模型)是應(yīng)用程序的一部分,用于處理應(yīng)用程序的數(shù)據(jù)邏輯。
通常模型對象負(fù)責(zé)訪問數(shù)據(jù)庫中的數(shù)據(jù)。
視圖(view)是應(yīng)用程序中處理數(shù)據(jù)顯示的部分。
通常視圖是基于模型數(shù)據(jù)創(chuàng)建的。
(控制器)是應(yīng)用程序中處理用戶交互的部分。
通常控制器負(fù)責(zé)從視圖中讀取數(shù)據(jù)php高級程序設(shè)計:模式,框架與測試,控制用戶輸入,并向模型發(fā)送數(shù)據(jù)。
MVC 分層有助于管理復(fù)雜的應(yīng)用程序,因為您可以一次專注于一個方面。例如,您可以專注于視圖設(shè)計而不依賴于業(yè)務(wù)邏輯。它還使應(yīng)用程序測試更容易。
MVC 分層還簡化了組開發(fā)。不同的開發(fā)人員可以同時開發(fā)視圖、控制器邏輯和業(yè)務(wù)邏輯。
框架和設(shè)計模式的區(qū)別
很多程序員經(jīng)常把框架模式和設(shè)計模式混為一談,認(rèn)為MVC是一種設(shè)計模式。事實上,它們是完全不同的概念。
框架和設(shè)計模式這兩個概念總是容易混淆。事實上,它們之間還是有區(qū)別的。框架通常是代碼重用,設(shè)計模式是設(shè)計重用,架構(gòu)介于兩者之間。部分代碼重用,部分設(shè)計重用,有時分析可以重用。
軟件生產(chǎn)中的重用分為三個層次:內(nèi)部重用,即可以在同一個應(yīng)用程序中公開使用的抽象塊;代碼重用,即將通用模塊組合成庫或工具集,使其可以在多個應(yīng)用和領(lǐng)域中使用;應(yīng)用程序框架的復(fù)用是為特殊領(lǐng)域提供通用或現(xiàn)成的基礎(chǔ)設(shè)施,以獲得最高級別的復(fù)用性。
框架和設(shè)計模式雖然相似,但本質(zhì)上是不同的。設(shè)計模式是對在一定環(huán)境中重復(fù)出現(xiàn)的問題的描述以及對問題的解決方案。它比框架更抽象;一個框架可以用代碼表達(dá),也可以直接執(zhí)行或重用。對于模式,只能使用示例。用代碼表示;
設(shè)計模式是比框架更小的元素。一個框架通常包含一個或多個設(shè)計模式。該框架始終針對特定的應(yīng)用領(lǐng)域,但相同的模式可以應(yīng)用于各種應(yīng)用??梢哉f,框架就是軟件,設(shè)計模式就是軟件的知識。
框架模式有哪些?
MVC、MTV、MVp、CbD、ORM等;
有哪些框架?
C++語言QT、MFC、gtk、Java語言SSH、SSI、pHp語言(MVC模式)、語言(MTV模式)等
有哪些設(shè)計模式?
工廠模式、適配器模式、策略模式等。
總之:框架是大智慧,用來劃分軟件設(shè)計;設(shè)計模式是小技巧,針對具體問題提出解決方案,以提高代碼復(fù)用率,降低耦合度。
基于 Web 的 MVC 在 J2EE 世界中得到了空前的繁榮。幾乎每隔一兩周就會在 TTS 網(wǎng)站上發(fā)布一個新的 MVC 框架。更好的 MVC 和舊的。新興的MVC框架包括MVC、JSF等。
其中大部分是知名團(tuán)隊的作品,也有一些邊緣團(tuán)隊的作品,也相當(dāng)不錯,比如,等等,這些框架提供了很好的分層能力。在實現(xiàn)良好的MVC分離的基礎(chǔ)上,通過提供一些現(xiàn)成的輔助類庫也促進(jìn)了生產(chǎn)效率的提升。
MVC特點:
優(yōu)勢
低耦合
視圖層和業(yè)務(wù)層分離,允許改變視圖層代碼而無需重新編譯模型和控制器代碼。同樣,對應(yīng)用程序的業(yè)務(wù)流程或業(yè)務(wù)規(guī)則的更改只需要更改 MVC 模型層。由于模型與控制器和視圖分離,因此很容易更改應(yīng)用程序的數(shù)據(jù)層和業(yè)務(wù)規(guī)則。
模型是自包含的,與控制器和視圖分離,因此很容易改變應(yīng)用程序的數(shù)據(jù)層和業(yè)務(wù)規(guī)則。如果將數(shù)據(jù)庫遷移到LDAp或?qū)?shù)據(jù)源更改為LDAp,則只需更改模型即可。
一旦模型正確實現(xiàn),無論數(shù)據(jù)來自數(shù)據(jù)庫還是 LDAp 服務(wù)器,視圖都會正確顯示它們。由于使用MVC的應(yīng)用程序的三個組件是相互獨立的,改變其中一個不會影響另外兩個,因此可以基于這種設(shè)計思想構(gòu)建一個良好的松耦合組件。
高復(fù)用性
隨著技術(shù)的不斷進(jìn)步,訪問應(yīng)用程序的方式也越來越多。MVC模式允許使用不同風(fēng)格的各種視圖訪問同一個服務(wù)器端代碼,因為多個視圖可以共享一個模型,其中包括任何WEb(HTTp)瀏覽器或無線瀏覽器(wap)。
例如,用戶可以通過電腦或手機(jī)訂購某種產(chǎn)品。雖然訂購方式不同,但訂購產(chǎn)品的加工方式是一樣的。由于模型返回的數(shù)據(jù)沒有格式化,同一個組件可以被不同的接口使用。
比如很多數(shù)據(jù)可能用HTML表示,但也可能用WAp表示。這些表示所需的命令是改變視圖層的實現(xiàn)方式php高級程序設(shè)計:模式,框架與測試,而控制層和模型層則不需要改變。由于數(shù)據(jù)和業(yè)務(wù)規(guī)則已經(jīng)與表示層分離,代碼重用可以大化。該模型還具有狀態(tài)管理和數(shù)據(jù)持久化處理的功能。
低生命周期成本
MVC 減少了開發(fā)和維護(hù)用戶界面的技術(shù)含量。
快速部署
使用MVC模型可以大大減少開發(fā)時間。它使程序員(Java 開發(fā)人員)能夠?qū)W⒂跇I(yè)務(wù)邏輯,并使界面程序員(HTML 和 JSp 開發(fā)人員)能夠?qū)W⒂诒硎尽?/p>
高可維護(hù)性
將視圖層和業(yè)務(wù)邏輯層分離,也使 Web 應(yīng)用程序更易于維護(hù)和修改。
有利的軟件工程管理
由于不同層各司其職,因此每一層的不同應(yīng)用具有一些相同的特點,有利于通過工程和工具對程序代碼進(jìn)行管理??刂破鬟€提供了一個好處,就是可以使用控制器連接不同的模型和視圖來完成用戶的需求,這樣控制器就可以為構(gòu)建應(yīng)用程序提供強(qiáng)大的手段。
給定一些可復(fù)用的模型和視圖,控制器可以根據(jù)用戶的需要選擇模型進(jìn)行處理,然后選擇視圖將處理結(jié)果展示給用戶。
缺點
沒有明確的定義
完全理解MVC并不容易。MVC的使用需要仔細(xì)規(guī)劃,因為它的內(nèi)部原理比較復(fù)雜,所以需要花一些時間去思考。同時,由于模型和視圖必須嚴(yán)格分離,這也給應(yīng)用調(diào)試帶來了一定的困難。每個組件在使用前都需要經(jīng)過徹底的測試。
不適合中小型應(yīng)用
花費大量時間將 MVC 應(yīng)用于不是很大的應(yīng)用程序通常會超過收益。
增加系統(tǒng)結(jié)構(gòu)和實現(xiàn)的復(fù)雜性
對于簡單的界面,嚴(yán)格遵循MVC,將模型、視圖和控制器分開,會增加結(jié)構(gòu)的復(fù)雜度,可能會產(chǎn)生過多的更新操作,降低運(yùn)行效率。
視圖和控制器連接太緊
視圖和控制器彼此分離,但它們是密切相關(guān)的組件。視圖沒有控制器,其應(yīng)用非常有限,反之亦然,這阻礙了它們的獨立重用。
查看對模型數(shù)據(jù)的低效訪問
根據(jù)模型操作界面的不同,可能需要多次調(diào)用視圖才能獲得足夠的顯示數(shù)據(jù)。不必要地頻繁訪問未更改的數(shù)據(jù)也會影響操作性能。
一般高級界面工具或構(gòu)建器不支持模式
適配這些工具來滿足MVC的需要以及建立單獨的組件的成本非常高,這會給MVC的使用帶來困難。
如何選擇一個好的框架應(yīng)用到項目中,對項目的效率和復(fù)用性至關(guān)重要。
報告/反饋
網(wǎng)頁題目:MVC是一種使用MVC(View模型-視圖-控制器)
路徑分享:http://m.rwnh.cn/news28/294328.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈、靜態(tài)網(wǎng)站、用戶體驗、移動網(wǎng)站建設(shè)、品牌網(wǎng)站制作、網(wǎng)站設(shè)計
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容