MVC是一種使用MVC(View模型-視圖-控制器)
2021-10-10
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ù)邏輯。
通常模型對象負責(zé)訪問數(shù)據(jù)庫中的數(shù)據(jù)。
視圖(view)是應(yīng)用程序中處理數(shù)據(jù)顯示的部分。
通常視圖是基于模型數(shù)據(jù)創(chuàng)建的。
(控制器)是應(yīng)用程序中處理用戶交互的部分。
通??刂破髫撠?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è)計模式混為一談,認為MVC是一種設(shè)計模式。事實上,它們是完全不同的概念。
框架和設(shè)計模式這兩個概念總是容易混淆。事實上,它們之間還是有區(qū)別的??蚣芡ǔJ谴a重用,設(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)的問題的描述以及對問題的解決方案。它比框架更抽象;一個框架可以用代碼表達,也可以直接執(zhí)行或重用。對于模式,只能使用示例。用代碼表示;
設(shè)計模式是比框架更小的元素。一個框架通常包含一個或多個設(shè)計模式。該框架始終針對特定的應(yīng)用領(lǐng)域,但相同的模式可以應(yīng)用于各種應(yīng)用。可以說,框架就是軟件,設(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等。
其中大部分是知名團隊的作品,也有一些邊緣團隊的作品,也相當(dāng)不錯,比如,等等,這些框架提供了很好的分層能力。在實現(xiàn)良好的MVC分離的基礎(chǔ)上,通過提供一些現(xià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ù)的不斷進步,訪問應(yīng)用程序的方式也越來越多。MVC模式允許使用不同風(fēng)格的各種視圖訪問同一個服務(wù)器端代碼,因為多個視圖可以共享一個模型,其中包括任何WEB(HTTP)瀏覽器或無線瀏覽器(wap)。
例如,用戶可以通過電腦或手機訂購某種產(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ā)和維護用戶界面的技術(shù)含量。
快速部署
使用MVC模型可以大大減少開發(fā)時間。它使程序員(Java 開發(fā)人員)能夠?qū)W⒂跇I(yè)務(wù)邏輯,并使界面程序員(HTML 和 JSP 開發(fā)人員)能夠?qū)W⒂诒硎尽?/p>
高可維護性
將視圖層和業(yè)務(wù)邏輯層分離,也使 Web 應(yīng)用程序更易于維護和修改。
有利的軟件工程管理
由于不同層各司其職,因此每一層的不同應(yīng)用具有一些相同的特點,有利于通過工程和工具對程序代碼進行管理。控制器還提供了一個好處,就是可以使用控制器連接不同的模型和視圖來完成用戶的需求,這樣控制器就可以為構(gòu)建應(yīng)用程序提供強大的手段。
給定一些可復(fù)用的模型和視圖,控制器可以根據(jù)用戶的需要選擇模型進行處理,然后選擇視圖將處理結(jié)果展示給用戶。
缺點
沒有明確的定義
完全理解MVC并不容易。MVC的使用需要仔細規(guī)劃,因為它的內(nèi)部原理比較復(fù)雜,所以需要花一些時間去思考。同時,由于模型和視圖必須嚴格分離,這也給應(yīng)用調(diào)試帶來了一定的困難。每個組件在使用前都需要經(jīng)過徹底的測試。
不適合中小型應(yīng)用
花費大量時間將 MVC 應(yīng)用于不是很大的應(yīng)用程序通常會超過收益。
增加系統(tǒng)結(jié)構(gòu)和實現(xiàn)的復(fù)雜性
對于簡單的界面,嚴格遵循MVC,將模型、視圖和控制器分開,會增加結(jié)構(gòu)的復(fù)雜度,可能會產(chǎn)生過多的更新操作,降低運行效率。
視圖和控制器連接太緊
視圖和控制器彼此分離,但它們是密切相關(guān)的組件。視圖沒有控制器,其應(yīng)用非常有限,反之亦然,這阻礙了它們的獨立重用。
查看對模型數(shù)據(jù)的低效訪問
根據(jù)模型操作界面的不同,可能需要多次調(diào)用視圖才能獲得足夠的顯示數(shù)據(jù)。不必要地頻繁訪問未更改的數(shù)據(jù)也會影響操作性能。
一般高級界面工具或構(gòu)建器不支持模式
適配這些工具來滿足MVC的需要以及建立單獨的組件的成本非常高,這會給MVC的使用帶來困難。
如何選擇一個好的框架應(yīng)用到項目中,對項目的效率和復(fù)用性至關(guān)重要。
報告/反饋