當前位置:編程學習大全網 - 編程語言 - MVC框架的常見框架

MVC框架的常見框架

Struts是Apache軟件基金下Jakarta項目的壹部分。Struts框架的主要架構設計和開發者是Craig R.McClanahan。Struts 是Java Web MVC框架中不爭的王者。經過長達九年的發展,Struts已經逐漸成長為壹個穩定、成熟的框架,並且占有了MVC框架中最大的市場份額。但是Struts某些技術特性上已經落後於新興的MVC框架。面對Spring MVC、Webwork2這些設計更精密,擴展性更強的框架,Struts受到了前所未有的挑戰。但站在產品開發的角度而言,Struts仍然是最穩妥的選擇。

Struts有壹組相互協作的類(組件)、Servlet以及jsp tag lib組成。基於struts構架的web應用程序基本上符合JSP Model2的設計標準,可以說是MVC設計模式的壹種變化類型。根據上面對framework的描述,很容易理解為什麽說Struts是壹個web framework,而不僅僅是壹些標記庫的組合。但 Struts 也包含了豐富的標記庫和獨立於該框架工作的實用程序類。Struts有其自己的控制器(Controller),同時整合了其他的壹些技術去實現模型層(Model)和視圖層(View)。在模型層,Struts可以很容易的與數據訪問技術相結合,包括EJB,JDBC和Object Relation Bridge。在視圖層,Struts能夠與JSP, Velocity Templates,XSL等等這些表示層組件相結合。 Spring實際上是Expert One-on-One J2EE Design and Development 壹書中所闡述的設計思想的具體實現。在One-on-One 壹書中,Rod Johnson倡導J2EE實用主義的設計思想,並隨書提供了壹個初步的開發框架實現(interface21 開發包)。而Spring 正是這壹思想的更全面和具體的體現。Rod Johnson 在interface21 開發包的基礎之上,進行了進壹步的改造和擴充,使其發展為壹個更加開放、清晰、全面、高效的開發框架。

Spring是壹個開源框架,由Rod Johnson創建並且在他的著作《J2EE設計開發編程指南》裏進行了描述。它是為了解決企業應用開發的復雜性而創建的。Spring使使用基本的JavaBeans來完成以前只可能由EJB完成的事情變得可能了。然而,Spring的用途不僅限於服務器端的開發。從簡單性、可測試性和松耦合的角度而言,任何Java應用都可以從Spring中受益。

簡單來說,Spring是壹個輕量的控制反轉和面向切面的容

框架。當然,這個描述有點過於簡單。但它的確概括出了Spring是做什麽的。 Zend Framework(簡寫ZF)是由 Zend 公司支持開發的完全基於 PHP5 的開源PHP開發框架,可用於開發 Web 程序和服務,ZF采用 MVC(Model–View-Controller) 架構模式來分離應用程序中不同的部分方便程序的開發和維護。

(MVC框架的詳細使用及其相關具體操作可以閱讀

參考資料:

或者擴展閱讀第二,三,四條。) 耦合性低

視圖層和業務層分離,這樣就允許更改視圖層代碼而不用重新編譯模型和控制器代碼,同樣,壹個應用的業務流程或者業務規則的改變只需要改動MVC的模型層即可。因為模型與控制器和視圖相分離,所以很容易改變應用程序的數據層和業務規則。

模型是自包含的,並且與控制器和視圖相分離,所以很容易改變應用程序的數據層和業務規則。如果把數據庫從MySQL移植到Oracle,或者改變基於RDBMS數據源到LDAP,只需改變模型即可。壹旦正確的實現了模型,不管數據來自數據庫或是LDAP服務器,視圖將會正確的顯示它們。由於運用MVC的應用程序的三個部件是相互獨立,改變其中壹個不會影響其它兩個,所以依據這種設計思想能構造良好的松耦合的構件。

重用性高

隨著技術的不斷進步,需要用越來越多的方式來訪問應用程序。MVC模式允許使用各種不同樣式的視圖來訪問同壹個服務器端的代碼,因為多個視圖能***享壹個模型,它包括任何WEB(HTTP)瀏覽器或者無線瀏覽器(wap),比如,用戶可以通過電腦也可通過手機來訂購某樣產品,雖然訂購的方式不壹樣,但處理訂購產品的方式是壹樣的。由於模型返回的數據沒有進行格式化,所以同樣的構件能被不同的界面使用。例如,很多數據可能用HTML來表示,但是也有可能用WAP來表示,而這些表示所需要的命令是改變視圖層的實現方式,而控制層和模型層無需做任何改變。由於已經將數據和業務規則從表示層分開,所以可以最大化的重用代碼了。模型也有狀態管理和數據持久性處理的功能,例如,基於會話的購物車和電子商務過程也能被Flash網站或者無線聯網的應用程序所重用。

生命周期成本低

MVC使開發和維護用戶接口的技術含量降低。

部署快

使用MVC模式使開發時間得到相當大的縮減,它使程序員(Java開發人員)集中精力於業務邏輯,界面程序員(HTML和JSP開發人員)集中精力於表現形式上。

可維護性高

分離視圖層和業務邏輯層也使得WEB應用更易於維護和修改。

有利軟件工程化管理

由於不同的層各司其職,每壹層不同的應用具有某些相同的特征,有利於通過工程化、工具化管理程序代碼。控制器也提供了壹個好處,就是可以使用控制器來聯接不同的模型和視圖去完成用戶的需求,這樣控制器可以為構造應用程序提供強有力的手段。給定壹些可重用的模型和視圖,控制器可以根據用戶的需求選擇模型進行處理,然後選擇視圖將處理結果顯示給用戶。 沒有明確的定義

完全理解MVC並不是很容易。使用MVC需要精心的計劃,由於它的內部原理比較復雜,所以需要花費壹些時間去思考。同時由於模型和視圖要嚴格的分離,這樣也給調試應用程序帶來了壹定的困難。每個構件在使用之前都需要經過徹底的測試。

不適合小型,中等規模的應用程序

花費大量時間將MVC應用到規模並不是很大的應用程序通常會得不償失。

增加系統結構和實現的復雜性

對於簡單的界面,嚴格遵循MVC,使模型、視圖與控制器分離,會增加結構的復雜性,並可能產生過多的更新操作,降低運行效率。

視圖與控制器間的過於緊密的連接

視圖與控制器是相互分離,但卻是聯系緊密的部件,視圖沒有控制器的存在,其應用是很有限的,反之亦然,這樣就妨礙了他們的獨立重用。

視圖對模型數據的低效率訪問

依據模型操作接口的不同,視圖可能需要多次調用才能獲得足夠的顯示數據。對未變化數據的不必要的頻繁訪問,也將損害操作性能。

壹般高級的界面工具或構造器不支持模式

改造這些工具以適應MVC需要和建立分離的部件的代價是很高的,會造成MVC使用的困難。

  • 上一篇:c語言編程不使用結構
  • 下一篇:學習編程好不好?
  • copyright 2024編程學習大全網