- 相關(guān)推薦
淺議軟件開(kāi)發(fā)框架技術(shù)
封層架構可能會(huì )導致修改代碼的時(shí)候,對某一個(gè)變量的修改,可能涉及到所有的關(guān)系到這個(gè)變量的層次都需要進(jìn)行修改,下面是小編搜集整理的一篇探究軟件開(kāi)發(fā)框架技術(shù)的論文范文,供大家閱讀參考。
摘要:框架技術(shù)對于軟件開(kāi)發(fā)來(lái)說(shuō),意義重大,不僅可以簡(jiǎn)化開(kāi)發(fā)流程,更利于后期維護。本文就軟件開(kāi)發(fā)中的框架技術(shù)進(jìn)行分析,重點(diǎn)探討struts、hibernate、spring以及分層架構內容。
關(guān)鍵詞:框架技術(shù) 分層架構 軟件開(kāi)發(fā)
1、SSH框架技術(shù)
SSH技術(shù)即struts、hibernate、spring技術(shù)的縮寫(xiě),是當前比較流行的開(kāi)源框架技術(shù)。
1.1 struts技術(shù)
Struts這個(gè)名字最初是金屬架的意思。開(kāi)發(fā)者希望通過(guò)Struts這個(gè)框架技術(shù)支持JSP、Servlet、Java,然后在Web系統項目中的使用這門(mén)技術(shù)。
2001年春天,在apache的網(wǎng)站上發(fā)布Struts的第一個(gè)版本的時(shí)候,Struts技術(shù)只提供了一種將視圖和業(yè)務(wù)邏輯分離的Web應用方案。當Struts這種Web應用技術(shù)出現的時(shí)候,每個(gè)開(kāi)發(fā)人員都把它視為一種利器,把自己從繁忙的工作中解脫出來(lái)。所以在2001-2003這兩年的時(shí)間里,大量IT公司在系統開(kāi)發(fā)的過(guò)程中Struts技術(shù)作為框架。
Struts的一大優(yōu)點(diǎn)是它是開(kāi)源軟件[6]。Struts 本質(zhì)是在Model2的基礎上實(shí)現的一個(gè)MVC架構,采用的主要技術(shù)是Servlet、JSP和custom tag library用戶(hù)自定義標記庫[7]。Struts是運用MVC的體系編寫(xiě)的一個(gè)Web應用的一個(gè)框架, 可以說(shuō)是一個(gè)傳統MVC設計模式的一種改進(jìn)類(lèi)型。
1.2 hibernate技術(shù)
在Java世界里,Hibernate一直是最引人關(guān)注的一個(gè)話(huà)題。從Gavin King加入EJB3.0 EG,負責制訂EJB3.0的持久層規范;到Gavin King非正式退出JDO EG,并且充滿(mǎn)個(gè)人情緒的對JDO2.0規范進(jìn)行攻擊;到《Hibernate in Action》的發(fā)行;再后來(lái)到Hibernate3 Alpha的發(fā)布;最后再到JBoss 3.0 PR的發(fā)布。Hibernate在短短不到3年的時(shí)間內,從一個(gè)名不見(jiàn)經(jīng)傳的開(kāi)源軟件發(fā)展成到今天令業(yè)界矚目的主流的O/R Mapping框架技術(shù),在當前的Java持久層框架中,最流行的O/R Mapping的產(chǎn)品分別是Hibernate,JDO以及TopLink。而Hibernate往往就是項目開(kāi)發(fā)的首選, Hibernate的輕量級ORM模型逐步確立了在Java對象關(guān)系映射架構中的地位,而且它的許多設計還被Java EE標注組織吸納成為EJB3.0規范的標準。
1.3 spring技術(shù)
Spring技術(shù)起源于2000年,它是Rod Johnson通過(guò)一些成功的商業(yè)項目構建起來(lái)的基礎框架技術(shù)。在2002,Rod Johnson發(fā)布了《Expert One-on-One J2EE Design and Development》一書(shū),并伴隨著(zhù)書(shū)的發(fā)布,同時(shí)提供了一個(gè)初步的開(kāi)發(fā)框架技術(shù),interface21開(kāi)發(fā)包,interface21也就是書(shū)中闡述的內容的具體實(shí)現。后來(lái),Rod Johnson 在interface21開(kāi)發(fā)包的基礎之上,進(jìn)行了進(jìn)一步的改造和擴充,使其發(fā)展為一個(gè)更加開(kāi)放、清晰、全面、高效的開(kāi)發(fā)框架——Spring。2003年2月,Spring框架技術(shù)正式成為一個(gè)開(kāi)源項目,開(kāi)始發(fā)布。Spring是一個(gè)解決了許多在J2EE開(kāi)發(fā)中常見(jiàn)問(wèn)題的強大框架。
2、分層架構
分層架構具有顯著(zhù)地特點(diǎn),系統最高級別的目標功能位于最頂層,具體的涉及到跨領(lǐng)域的業(yè)務(wù)功能在中間層,系統配置以及系統環(huán)境位于底層。上一層調用下一層的數據,下一層為上一層提供服務(wù)。分層架構要遵循一定的原則:(1)可見(jiàn)度原則。每個(gè)系統的依賴(lài)關(guān)系只存在以同一級別的層次或者是下一個(gè)級別的子系統。(2)易變性原則。易變性原則也適合具體的層次相關(guān)聯(lián)的,越往上的層次越靠近用戶(hù)的需求,由于用戶(hù)的需求是異變的,因此這一層次的抽象也往往最容易發(fā)生變化,而底層的數據庫連接、環(huán)境配置、硬件驅動(dòng)等等,這些相對來(lái)說(shuō)不容易變化的,即使頂層的需求變化,這一部分是向上提供服務(wù)的,相對不易變化。(3)通用性原則。抽象模型元素一般放在放置在分層架構的底層。如果這些不涉及或者是不專(zhuān)注于具體的實(shí)現,則可以將這邪惡放在中間層次;(4)層數。對已通常的系統來(lái)說(shuō),三層是比較普遍的,對已特別復雜的系統,要加入層次,隨著(zhù)層數的增加,復雜性也會(huì )增加。
使用分層架構,有如下幾方面的優(yōu)點(diǎn):(1)每一層的設計只關(guān)注本層次。在進(jìn)行系統開(kāi)發(fā)的時(shí)候,業(yè)務(wù)功能的層次只需負責具體需求的實(shí)現,數據庫持久的層次只關(guān)注與數據庫的連接與管理,不需要對其他層次進(jìn)行考慮。(2)開(kāi)發(fā)更加方便。在系統開(kāi)發(fā)中,很可能會(huì )遇到功能類(lèi)似的系統,那么實(shí)現系統時(shí)這兩個(gè)功能的實(shí)現會(huì )很容易,只需將涉及到功能的名字和變量進(jìn)行替換就可以完成系統功能。(3)降低耦合。分層可以降低系統之間的依賴(lài)。例如,web表示層只需要關(guān)注與怎么對外提供服務(wù),至于中間的業(yè)務(wù)邏輯層是怎樣流轉的,數據庫持久層怎么進(jìn)行數據提供,都不需要關(guān)心,這樣充分降低了系統之間的耦合。(4)代碼復用。某一層次的實(shí)現,可以像其他很多層次提供服務(wù)。 (5)可以使代碼編寫(xiě)更加整潔,利于標準化工作。
分層架構也存在有一些弊端和缺點(diǎn):(1)數據級聯(lián)。封層架構可能會(huì )導致修改代碼的時(shí)候,對某一個(gè)變量的修改,可能涉及到所有的關(guān)系到這個(gè)變量的層次都需要進(jìn)行修改。(2)分層架構的層次要適度。對于系統來(lái)說(shuō),并不是越多的層次對系統越好,系統越多,系統開(kāi)銷(xiāo)越大,系統負擔也越大,系統開(kāi)發(fā)難度也越大,對已普通的應用性系統來(lái)說(shuō),如果需求不是特別多,數據量非海量型的,那么三層架構已經(jīng)可以實(shí)現,對已數據量大,業(yè)務(wù)需求復雜的系統,可以分為4-5個(gè)層次,對已5層以上的分層不提倡,這樣分層的話(huà),會(huì )使本來(lái)先對比較簡(jiǎn)單的工作變得復雜,反而會(huì )不利于系統的開(kāi)發(fā)和后期的維護工作。
通過(guò)以上幾點(diǎn)分析,分層對系統來(lái)說(shuō)是有利有弊的,適當的分層架構對系統很重要,要進(jìn)行權衡利弊,并不是越多的層次越好,分層的具體要根據實(shí)際的需求進(jìn)行聯(lián)系,進(jìn)行細致的分析和考慮,這樣才能使開(kāi)發(fā)更有效率,維護也更加方便。
參考文獻
[1]李海濤.MVC設計模式在JSP開(kāi)發(fā)中的應用[J].電腦編程技巧與維護,2011,(10).
【淺議軟件開(kāi)發(fā)框架技術(shù)】相關(guān)文章:
高速路維修技術(shù)淺議03-02
淺議雜交玉米高產(chǎn)制種的技術(shù)措施03-17
中職學(xué)!缎畔⒓夹g(shù)》課教法淺議03-06
淺議關(guān)于大體積砼施工技術(shù)的探討03-18
現代鋼框架結構的施工技術(shù)探討11-21
采用多框架技術(shù)實(shí)現在線(xiàn)考場(chǎng)恢復系統03-19
建筑工程框架結構工程技術(shù)淺析03-11